From 17ba07880e1838028b4516ba7a2db2147b3aa1c9 Mon Sep 17 00:00:00 2001 From: Coccinelle Date: Mon, 12 Mar 2012 13:19:05 +0100 Subject: [PATCH] Coccinelle release-1.0.0-rc11 ** Language: - Addition of initializer list metavariables. Thanks to Michael Stefaniuc for noticing the need for them. - Allow multiple position variables per token - ++ can now be associated with - code - Allow /* */ comments as smpl comments, not only as + code - Add support for && (label addresses) - local idexpression metavariable no longer matches static local x - Consider using to be a comment in C++ code. Patch submitted by Jani Monoses. - Command line cocci - print_main etc for ocaml Coccilib - =~ not ~= is used to indicate a regular expression constraint on an identifier. And !~ for a nonmatch. - allow long double, short int, long int, and long long int in SmPL code. - gcc constructors allowed in SmPL. Thanks to Uwe Kleine-Koenig for pointing out the problem. - Allow ! to appear before () in depends. Thanks to SF Markus Elfring for noticing the problem. - Can add code containing #pragma or #line. - Multicharacter command-line options now begin with -- and contain - rather than _. - Allow multiple types of hidden metavariables, each preceded by @. Position variables can be attached to these. - Python code now receives a structure containing a list of matched elements for list metavariables. Thanks to Michael Stefaniuc for suggesting this features. - Python code now receives expressions and identifiers as ordinary strings, not as elements of specific structures. ** Features: - Preserve spacing before // comments when not at the beginning of a line - Adjusted parsing of endif to put it after jump code - Improve warning message when using -use_cache - More helpful initial value for exported variables in python - Support - on expression nests - Better handling of the case of a matched declaration that should only be replaced by other top level things. - Allow a semantic patch beginning and ending with braces to match the complete body of a function if the braces are not removed and if nothing is added before the first brace or after the last one. - Add -cache_prefix option, to specify where to put cached files. - Allow module_init(foo); to match module_init(foo) (or likewise for any declarer), when no transformation is specified on the semicolon. - Add Coccilib.exit() for ocaml code and cocci.exit() for python code, to abort the treatment of the current file. - Don't multiply print the same patch for the same file - Drop date in diff - Don't repeat smpl type warnings - -sp_file/-cocci_file are now optional. If not present an argument that ends in .cocci is assumed to be the name of the file containing the semantic patch. - Allow limiting the size of a named cache using -cache_limit - Cache name specified with -cache_prefix is extended according to the index (parallelism), if any. - Allow multi-character constants in C code and SmPL code. Thanks to Kamil Pilch for pointing out the problem. - Better parsing of K&R C functions. No longer convert all parameters to typedefs. - Implement newes as a hash table, for more efficiency on big sets of environments. - A local variable that is declared without a type is not considered to be a local variable. Actually, such a variable is probably really a macro that expends to a declaration, and this macro is not the variable name. - Allow iteration to make modifications when the modifications are done inplace. - -debug gives information about defined virtual rules and about virtual identifier bindings. - no more crashing on c++-like code without the c++ argument. - dependencies can have ! on () - Give ocaml code access to Flag and thus the current file name. - Slightly more efficient handling of lists. - Slightly better error message in the case of inconsistent paths - Improve limited size caching ** Bugfix: - Corrected parsing of script strings delimited by a single quote. Thanks to Eugeniy Meshcheryakov for reporting the problem. - Improved indentation of added ifdefs. - Allow added comments and #ifdefs to precede other added code. Thanks to Jani Monoses for noticing the problem. - Corrected failure to due missing ocamlfind. Thanks to Derek M. Jones for reporting the problem. - Allow fake nodes to be - in the allminus case, to drop tokens related to a function definition or forward declaration but before the first code mentioned in the semantic patch. - Drop __init etc when deleting a whole function. - Cause appropriate newlines to be preserved when multiple matches (trees) contain adjacent modifications derived from the same SmPL code. - check_meta takes into account fresh identifier seed information. - Types for worth-trying optimization should not be followed by space - Improved filtering of result of matching atomic patterns - Drop positions before creating function prototype rules - Adjust position of { introduced by adding multiple statements in a single-statement position - Drop newline after function call ( when all arguments on that line are eliminated - Accept removal of a single declaration, replaced by arbitrary, non-declaration code - smpl_spacing takes into account newlines, indentation - Improved prevention of transformations on toplevel { ... } from causing changes outside function boundaries; also outside ifs, whiles, etc. Changes are still allowed on { ... } present for other reasons. - Fix bug in include_match that caused everything to halt when all matches were discarded - Don't call Insert_plus on rules that cannot be evaluated due to failed dependencies. - Allow variable declaration right after a case in switch. - The top of a loop is also after the body of a loop, for ... in loop body - Do not anchor Str regexp at the beginning of the string to check - Type annotation for C code uses most recent env for typedefs when possible. Thanks to Andrea Canciani for pointing out the problem. - Pretty print pointer types without a trailing space. Thanks to Michael Stefaniuc for pointing out the problem. - Propagate dependencies further in get_constants2 - Make lexer more dos friendly - slightly better handling of long long - Strip constraints from metavariables in function prototype treatment before comparison, due to incomparability of pcre regexps. - Fixed obsolete regexp doc, thanks to Dmitry Osmakov - Improved x || ... || y to avoid double modification - Transparently allow \( \| and \) to be on lines beginning with -. The - has no effect. - Remove memory leak related to pr2_once management. Thanks to Robert Gomulka for helping to solve the problem. Don't use once hashtable if messages won't be printed anyway. - Change the type of subtraction mixing pointer and array to have int result. Thanks to Robert Gomulka for noticing the problem. - Fix interpretation of dependencies in the presence of virtual rules. Ignore constraints on inherited position metavariables in a rule that will be ignored. - Better support meta iterator and meta declarer tokens, and symid tokens. - Better indentation after added noindent. - Fixed length bug in the treatment of structures. - Allow inheriting declaration/field metavariables. - Don't drop spaces after parentheses in when no minus code present. Thanks to Terry Wilson for reporting the problem. - Keep inherited metavariables in asttomember (preprocessing for matching) - allminus for types, to allow removing const, not just matching it - improved pretty printing when something is added before a closed brace - Allow matching on nameless structs. Thanks to Ron Minnich for reporting the problem. - Pretty printing of const/volatile arrays in smpl code. --- Makefile | 10 +- Makefile.release | 15 +- changes.txt | 22 + cocci.ml | 16 +- cocci.mli | 4 +- commons/common.ml | 9 +- configure | 59 +- ctl/Makefile | 4 +- ctl/ast_ctl.ml | 4 +- ctl/ctl_engine.ml | 122 +- ctl/ctl_engine.mli | 4 +- ctl/flag_ctl.ml | 4 +- ctl/pretty_print_ctl.ml | 4 +- ctl/pretty_print_ctl.mli | 4 +- ctl/test_ctl.ml | 4 +- ctl/wrapper_ctl.ml | 4 +- ctl/wrapper_ctl.mli | 4 +- docs/manual/cocci_syntax.tex | 11 + docs/manual/main_grammar.pdf | Bin 345732 -> 346267 bytes docs/manual/manual.pdf | Bin 452455 -> 452819 bytes docs/manual/options.pdf | Bin 140411 -> 138955 bytes docs/manual/spatch_options.tex | 313 +- engine/Makefile | 4 +- engine/asttoctl.ml | 4 +- engine/asttoctl.mli | 4 +- engine/asttoctl2.ml | 18 +- engine/asttoctl2.mli | 4 +- engine/asttomember.ml | 37 +- engine/asttomember.mli | 4 +- engine/c_vs_c.ml | 17 +- engine/c_vs_c.mli | 4 +- engine/check_exhaustive_pattern.ml | 15 +- engine/check_reachability.ml | 16 +- engine/check_reachability.mli | 7 +- engine/cocci_vs_c.ml | 154 +- engine/cocci_vs_c.mli | 4 +- engine/ctlcocci_integration.ml | 10 +- engine/ctlcocci_integration.mli | 6 +- engine/ctltotex.ml | 4 +- engine/ctltotex.mli | 4 +- engine/flag_engine.ml | 4 +- engine/flag_matcher.ml | 4 +- engine/isomorphisms_c_c.ml | 4 +- engine/lib_engine.ml | 4 +- engine/lib_matcher_c.ml | 4 +- engine/lib_matcher_c.mli | 4 +- engine/main.ml | 4 +- engine/pattern_c.ml | 4 +- engine/pattern_c.mli | 4 +- engine/postprocess_transinfo.ml | 4 +- engine/postprocess_transinfo.mli | 4 +- engine/pretty_print_engine.ml | 4 +- engine/pretty_print_engine.mli | 4 +- engine/sgrep.ml | 4 +- engine/transformation_c.ml | 4 +- engine/transformation_c.mli | 4 +- flag_cocci.ml | 4 +- globals/Makefile | 6 +- globals/config.ml.in | 2 +- globals/flag.ml | 4 +- globals/iteration.ml | 4 +- globals/iteration.mli | 4 +- globals/regexp.ml | 28 +- globals/regexp.ml.in | 1 + globals/regexp_pcre.ml | 28 +- globals/regexp_str.ml | 7 +- main.ml | 311 +- ocaml/Makefile | 2 +- ocaml/prepare_ocamlcocci.ml | 2 +- ocaml/prepare_ocamlcocci.ml.in | 1 + parsing_c/ast_c.ml | 2 + parsing_c/flag_parsing_c.ml | 54 +- parsing_c/parse_c.ml | 12 +- parsing_c/parser_c.mly | 13 + parsing_c/parsing_hacks.ml | 13 +- parsing_c/pretty_print_c.ml | 24 +- parsing_c/pretty_print_c.mli | 3 + parsing_c/test_parsing_c.ml | 42 +- parsing_c/type_annoter_c.ml | 2 +- parsing_c/type_c.ml | 4 +- parsing_c/unparse_c.ml | 10 +- parsing_c/unparse_cocci.ml | 26 +- parsing_c/visitor_c.ml | 12 +- parsing_cocci/Makefile | 6 +- parsing_cocci/adjacency.ml | 4 +- parsing_cocci/adjacency.mli | 4 +- parsing_cocci/adjust_pragmas.ml | 14 +- parsing_cocci/adjust_pragmas.mli | 4 +- parsing_cocci/arity.ml | 35 +- parsing_cocci/arity.mli | 4 +- parsing_cocci/ast0_cocci.ml | 50 +- parsing_cocci/ast0_cocci.mli | 26 +- parsing_cocci/ast0toast.ml | 145 +- parsing_cocci/ast0toast.mli | 6 +- parsing_cocci/ast_cocci.ml | 32 +- parsing_cocci/ast_cocci.mli | 17 +- parsing_cocci/check_meta.ml | 52 +- parsing_cocci/check_meta.mli | 4 +- parsing_cocci/comm_assoc.ml | 4 +- parsing_cocci/comm_assoc.mli | 4 +- parsing_cocci/command_line.ml | 10 +- parsing_cocci/command_line.mli | 4 +- parsing_cocci/compute_lines.ml | 26 +- parsing_cocci/compute_lines.mli | 4 +- parsing_cocci/context_neg.ml | 24 +- parsing_cocci/context_neg.mli | 4 +- parsing_cocci/data.ml | 6 +- parsing_cocci/data.mli | 6 +- parsing_cocci/disjdistr.ml | 28 +- parsing_cocci/disjdistr.mli | 4 +- parsing_cocci/flag_parsing_cocci.ml | 4 +- parsing_cocci/free_vars.ml | 4 +- parsing_cocci/free_vars.mli | 4 +- parsing_cocci/function_prototypes.ml | 4 +- parsing_cocci/function_prototypes.mli | 4 +- parsing_cocci/get_constants.ml | 4 +- parsing_cocci/get_constants.mli | 4 +- parsing_cocci/get_constants2.ml | 4 +- parsing_cocci/get_constants2.mli | 4 +- parsing_cocci/get_metas.ml | 840 ++ parsing_cocci/get_metas.mli | 27 + parsing_cocci/id_utils.ml | 4 +- parsing_cocci/id_utils.mli | 4 +- parsing_cocci/index.ml | 13 +- parsing_cocci/index.mli | 4 +- parsing_cocci/insert_plus.ml | 15 +- parsing_cocci/insert_plus.mli | 4 +- parsing_cocci/iso_compile.ml | 77 +- parsing_cocci/iso_compile.mli | 4 +- parsing_cocci/iso_pattern.ml | 80 +- parsing_cocci/iso_pattern.mli | 4 +- parsing_cocci/lexer_cli.mll | 4 +- parsing_cocci/lexer_cocci.mll | 7 +- parsing_cocci/lexer_script.mll | 4 +- parsing_cocci/main.ml | 4 +- parsing_cocci/merge.ml | 4 +- parsing_cocci/merge.mli | 4 +- parsing_cocci/parse_aux.ml | 53 +- parsing_cocci/parse_cocci.ml | 104 +- parsing_cocci/parse_cocci.mli | 4 +- parsing_cocci/parser_cocci.mly | 4 +- parsing_cocci/parser_cocci_menhir.ml | 11934 ++++++++++++----------- parsing_cocci/parser_cocci_menhir.mli | 2 +- parsing_cocci/parser_cocci_menhir.mly | 60 +- parsing_cocci/plus.ml | 4 +- parsing_cocci/plus.mli | 4 +- parsing_cocci/pretty_print_cocci.ml | 30 +- parsing_cocci/pretty_print_cocci.mli | 4 +- parsing_cocci/safe_for_multi_decls.ml | 4 +- parsing_cocci/safe_for_multi_decls.mli | 4 +- parsing_cocci/semantic_cocci.ml | 4 +- parsing_cocci/simple_assignments.ml | 4 +- parsing_cocci/simple_assignments.mli | 4 +- parsing_cocci/single_statement.ml | 15 +- parsing_cocci/single_statement.mli | 4 +- parsing_cocci/test.cocci | 4 +- parsing_cocci/test2.cocci | 4 +- parsing_cocci/test_exps.ml | 4 +- parsing_cocci/test_exps.mli | 4 +- parsing_cocci/top_level.ml | 4 +- parsing_cocci/top_level.mli | 4 +- parsing_cocci/type_cocci.ml | 4 +- parsing_cocci/type_cocci.mli | 4 +- parsing_cocci/type_infer.ml | 17 +- parsing_cocci/type_infer.mli | 4 +- parsing_cocci/unify_ast.ml | 26 +- parsing_cocci/unify_ast.mli | 4 +- parsing_cocci/unitary_ast0.ml | 4 +- parsing_cocci/unitary_ast0.mli | 4 +- parsing_cocci/unparse_ast0.ml | 56 +- parsing_cocci/unparse_ast0.mli | 4 +- parsing_cocci/visitor_ast.ml | 40 +- parsing_cocci/visitor_ast.mli | 4 +- parsing_cocci/visitor_ast0.ml | 53 +- parsing_cocci/visitor_ast0.mli | 4 +- parsing_cocci/visitor_ast0_types.ml | 4 +- popl/Makefile | 4 +- popl/ast_popl.ml | 4 +- popl/asttopopl.ml | 4 +- popl/asttopopl.mli | 4 +- popl/insert_befaft.ml | 4 +- popl/insert_befaft.mli | 4 +- popl/insert_quantifiers.ml | 4 +- popl/insert_quantifiers.mli | 4 +- popl/popl.ml | 4 +- popl/popl.mli | 4 +- popl/popltoctl.ml | 4 +- popl/popltoctl.mli | 4 +- popl/pretty_print_popl.ml | 4 +- popl/pretty_print_popl.mli | 4 +- popl09/Makefile | 4 +- popl09/ast_popl.ml | 4 +- popl09/asttopopl.ml | 4 +- popl09/asttopopl.mli | 4 +- popl09/flag_popl.ml | 4 +- popl09/insert_quantifiers.ml | 4 +- popl09/insert_quantifiers.mli | 4 +- popl09/popl.ml | 4 +- popl09/popl.mli | 4 +- popl09/popltoctl.ml | 4 +- popl09/popltoctl.mli | 4 +- popl09/pretty_print_popl.ml | 4 +- popl09/pretty_print_popl.mli | 4 +- python/Makefile | 6 +- python/coccilib/elems.py | 31 +- python/no_pycocci.ml | 4 +- python/pycocci.ml.in | 1 + python/pycocci.mli | 4 +- python/pycocci_aux.ml | 27 +- python/pycocci_aux.mli | 9 +- python/yes_pycocci.ml | 46 +- release.nix | 326 + 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 +- testing.ml | 10 +- testing.mli | 4 +- tests/SCORE_expected.sexp | 40 +- tests/SCORE_expected.sexp.save | 162 - tests/SCORE_expected_orig.sexp | 41 +- tests/const1bis.cocci | 2 +- tests/constrem.c | 3 + tests/constrem.cocci | 9 + tests/constrem.res | 1 + tests/ifadd.c | 8 + tests/ifadd.cocci | 8 + tests/ifadd.res | 9 + tests/indecl.c | 14 + tests/indecl.cocci | 23 + tests/kr.c | 7 + tests/kr.cocci | 4 + tests/kr.res | 6 + tests/metaline.c | 9 + tests/metaline.cocci | 49 + tests/metaline.res | 8 + tests/tdnl.c | 8 + tests/tdnl.cocci | 3 + tests/tdnl.res | 7 + tests/twomatch.c | 5 + tests/twomatch.cocci | 16 + tests/twomatch.res | 5 + tools/Makefile | 4 +- tools/alloc_free.ml | 4 +- tools/bridge.ml | 4 +- tools/dir_stats.ml | 4 +- tools/dumper.ml | 4 +- tools/dumper.mli | 4 +- tools/extract_c_and_res.ml | 4 +- tools/generate_dependencies.ml | 4 +- tools/gitgrep.ml | 4 +- tools/gitsort.ml | 4 +- tools/licensify.ml | 16 +- tools/process_isoprofile.ml | 4 +- tools/splitpatch.ml | 4 +- tools/spp.ml | 4 +- version | 3 + 261 files changed, 9946 insertions(+), 6962 deletions(-) rewrite globals/regexp.ml (100%) mode change 120000 => 100644 create mode 100644 globals/regexp.ml.in rewrite ocaml/prepare_ocamlcocci.ml (100%) mode change 120000 => 100644 create mode 100644 ocaml/prepare_ocamlcocci.ml.in create mode 100644 parsing_cocci/get_metas.ml create mode 100644 parsing_cocci/get_metas.mli create mode 100644 python/pycocci.ml.in create mode 100644 release.nix delete mode 100644 tests/SCORE_expected.sexp.save create mode 100644 tests/constrem.c create mode 100644 tests/constrem.cocci create mode 100644 tests/constrem.res create mode 100644 tests/ifadd.c create mode 100644 tests/ifadd.cocci create mode 100644 tests/ifadd.res create mode 100644 tests/indecl.c create mode 100644 tests/indecl.cocci create mode 100644 tests/kr.c create mode 100644 tests/kr.cocci create mode 100644 tests/kr.res create mode 100644 tests/metaline.c create mode 100644 tests/metaline.cocci create mode 100644 tests/metaline.res create mode 100644 tests/tdnl.c create mode 100644 tests/tdnl.cocci create mode 100644 tests/tdnl.res create mode 100644 tests/twomatch.c create mode 100644 tests/twomatch.cocci create mode 100644 tests/twomatch.res create mode 100644 version diff --git a/Makefile b/Makefile index 42a9aab..df350ea 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,6 @@ -# Copyright 2010, INRIA, University of Copenhagen +# Copyright 2012, INRIA +# Julia Lawall, Gilles Muller +# Copyright 2010-2011, 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 @@ -29,7 +31,7 @@ -include Makefile.config -include /etc/lsb-release -VERSION=$(shell cat globals/config.ml.in |grep version |perl -p -e 's/.*"(.*)".*/$$1/;') +VERSION=$(shell cat ./version) CCVERSION=$(shell cat scripts/coccicheck/README |grep "Coccicheck version" |perl -p -e 's/.*version (.*)[ ]*/$$1/;') PKGVERSION=$(shell dpkg-parsechangelog -ldebian/changelog.$(DISTRIB_CODENAME) 2> /dev/null \ | sed -n 's/^Version: \(.*\)/\1/p' ) @@ -482,7 +484,7 @@ tags: otags -no-mli-tags -r . dependencygraph: - find -name "*.ml" |grep -v "scripts" | xargs ocamldep -I commons -I globals -I ctl -I parsing_cocci -I parsing_c -I engine -I popl09 -I extra > /tmp/dependfull.depend + find . -name "*.ml" |grep -v "scripts" | xargs ocamldep -I commons -I globals -I ctl -I parsing_cocci -I parsing_c -I engine -I popl09 -I extra > /tmp/dependfull.depend ocamldot -lr /tmp/dependfull.depend > /tmp/dependfull.dot dot -Tps /tmp/dependfull.dot > /tmp/dependfull.ps ps2pdf /tmp/dependfull.ps /tmp/dependfull.pdf @@ -540,7 +542,7 @@ distclean:: clean rm -f TAGS rm -f tests/SCORE_actual.sexp rm -f tests/SCORE_best_of_both.sexp - find -name ".#*1.*" | xargs rm -f + find . -name ".#*1.*" | xargs rm -f beforedepend:: diff --git a/Makefile.release b/Makefile.release index 461d068..1ccbc03 100644 --- a/Makefile.release +++ b/Makefile.release @@ -35,7 +35,7 @@ OCAMLVERSION=$(shell ocaml -version |perl -p -e 's/.*version (.*)/$$1/;') # # 1) make prerelease # WARN: These will clean your local rep. of pending modifications # -# UPDATE VERSION number in globals/config.ml.in +# UPDATE VERSION number in ./version # and commit it with # # 2) make release @@ -70,7 +70,7 @@ prerelease: $(MAKE) fix-expected $(MAKE) distclean sed -i "s|^OCAMLCFLAGS=.*$$|OCAMLCFLAGS=|" Makefile - @echo "\n\tEdit globals/config.ml.in" + @echo "\n\tEdit ./version" @echo "\tCommit with 'make release'\n" fix-expected: @@ -81,7 +81,8 @@ fix-expected: cp tests/SCORE_actual.sexp tests/SCORE_expected_orig.sexp release: - git add globals/config.ml.in + sed -i -e 's|^let version = ".*"$$|let version = "$(VERSION)"|g' globals/config.ml.in + git add ./ version globals/config.ml.in git commit -m "Release $(VERSION)" git tag -a -m "Release $(VERSION)" $(VERSION) git push --mirror @@ -252,3 +253,11 @@ push: rm -rf $(TMP)/$(PRJNAME)_$(VERSION)*.dsc rm -rf $(TMP)/$(PRJNAME)_$(VERSION)*.tar.gz +# Produces a source tarball +# Note: start from a fresh working directory +# Note: configure first +dist: + $(MAKE) licensify + $(MAKE) docs + $(MAKE) clean + tar cvfz $(PACKAGE).tar.gz --transform="s,^,$(PACKAGE)/,S" --exclude=$(PACKAGE).tar.gz --exclude-backups --exclude-vcs * diff --git a/changes.txt b/changes.txt index 2822db3..be84db4 100644 --- a/changes.txt +++ b/changes.txt @@ -40,6 +40,15 @@ - Allow ! to appear before () in depends. Thanks to SF Markus Elfring for noticing the problem. - Can add code containing #pragma or #line. +- Multicharacter command-line options now begin with -- and contain - + rather than _. +- Allow multiple types of hidden metavariables, each preceded by @. + Position variables can be attached to these. +- Python code now receives a structure containing a list of matched + elements for list metavariables. Thanks to Michael Stefaniuc for + suggesting this features. +- Python code now receives expressions and identifiers as ordinary strings, + not as elements of specific structures. ** Features: - Preserve spacing before // comments when not at the beginning of a line @@ -82,6 +91,9 @@ - no more crashing on c++-like code without the c++ argument. - dependencies can have ! on () - Give ocaml code access to Flag and thus the current file name. +- Slightly more efficient handling of lists. +- Slightly better error message in the case of inconsistent paths +- Improve limited size caching ** Bugfix: - Corrected parsing of script strings delimited by a single quote. Thanks @@ -141,6 +153,16 @@ will be ignored. - Better support meta iterator and meta declarer tokens, and symid tokens. - Better indentation after added noindent. +- Fixed length bug in the treatment of structures. +- Allow inheriting declaration/field metavariables. +- Don't drop spaces after parentheses in when no minus code present. + Thanks to Terry Wilson for reporting the problem. +- Keep inherited metavariables in asttomember (preprocessing for matching) +- allminus for types, to allow removing const, not just matching it +- improved pretty printing when something is added before a closed brace +- Allow matching on nameless structs. Thanks to Ron Minnich for reporting + the problem. +- Pretty printing of const/volatile arrays in smpl code. * 0.2.5 ** Language: diff --git a/cocci.ml b/cocci.ml index 94f4707..f469888 100644 --- a/cocci.ml +++ b/cocci.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -150,8 +152,8 @@ let ctls_of_ast2 ast (ua,fua,fuas) pos = (Asttomember.asttomember ast ua)) ast (List.combine ua (List.combine fua (List.combine fuas pos))) -let ctls_of_ast ast ua = - Common.profile_code "asttoctl2" (fun () -> ctls_of_ast2 ast ua) +let ctls_of_ast ast ua pl = + Common.profile_code "asttoctl2" (fun () -> ctls_of_ast2 ast ua pl) (*****************************************************************************) (* Some debugging functions *) @@ -1657,7 +1659,8 @@ and process_a_ctl_a_env_a_toplevel2 r e c f = (***************************************) let model_ctl = CCI.model_for_ctl r.dropped_isos (Common.some c.flow) e - in CCI.mysat model_ctl ctl (r.rule_info.used_after, e)) + in CCI.mysat model_ctl ctl + (r.rule_info.rulename, r.rule_info.used_after, e)) in if not returned_any_states then None @@ -1724,6 +1727,7 @@ let rec bigloop2 rs (ccs: file_info list) = (Ast_cocci.ScriptRule (nm,l,deps,mv,script_vars,code))); end; + (*pr2 (List.hd(cmd_to_list "free -m | grep Mem"));*) if !Flag.show_misc then print_endline "RESULT ="; let (_, newes) = @@ -1835,8 +1839,8 @@ let pre_engine2 (coccifile, isofile) = (* useful opti when use -dir *) let (metavars,astcocci, free_var_lists,negated_pos_lists,used_after_lists, - positions_lists,(toks,_,_)) = - sp_of_file coccifile isofile in + positions_lists,(toks,_,_)) = sp_of_file coccifile isofile in + let ctls = ctls_of_ast astcocci used_after_lists positions_lists in g_contain_typedmetavar := sp_contain_typed_metavar astcocci; diff --git a/cocci.mli b/cocci.mli index 190199c..2a06dc6 100644 --- a/cocci.mli +++ b/cocci.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/commons/common.ml b/commons/common.ml index aa4d6e2..3ed8ba0 100644 --- a/commons/common.ml +++ b/commons/common.ml @@ -3371,9 +3371,13 @@ let cache_computation_robust2 if Sys.file_exists dependencies_cache && get_value dependencies_cache =*= dependencies - then get_value file_cache + then + (*begin + pr2 ("cache computation reuse " ^ file);*) + get_value file_cache + (*end*) else begin - pr2 ("cache computation recompute " ^ file); + (*pr2 ("cache computation recompute " ^ file);*) let res = f () in write_value dependencies dependencies_cache; write_value res file_cache; @@ -3552,6 +3556,7 @@ let timeout_function timeoutval = fun f -> with Timeout -> begin log "timeout (we abort)"; + (*pr2 (List.hd(cmd_to_list "free -m | grep Mem"));*) raise Timeout; end | e -> diff --git a/configure b/configure index 6f3a6c7..2e46817 100755 --- a/configure +++ b/configure @@ -101,6 +101,10 @@ while($changedLibs) { } } +if (!$python) { + $libs{'pycaml'} = 0; +} + #if($ARGV[0] =~ "--prefix=(.*)") { # $prefix = $1; #} @@ -172,8 +176,8 @@ $noocamlscripting = check_config("echo \"1;;\\n\" | ocaml |", my $ocamlprefix = $noocamlscripting ? "no" : "yes"; if ($opt eq ".opt") { - my $opt_check = `which ocamlc.opt 2> /dev/null`; - if($opt_check =~ "/ocamlc.opt\$") { + my $opt_check1 = `ocamlc.opt -version 2>/dev/null`; + if($opt_check1 =~ /[0-9\.]+/) { pr2 "ocamlc.opt is present."; } else { @@ -181,8 +185,8 @@ if ($opt eq ".opt") { pr2 "ocamlc.opt not found"; } - my $opt_check = `which ocamlopt.opt 2> /dev/null`; - if($opt_check =~ "/ocamlopt.opt\$") { + my $opt_check2 = `ocamlopt.opt -version 2>/dev/null`; + if($opt_check2 =~ /[0-9\.]+/) { pr2 "ocamlopt.opt is present."; } else { @@ -190,8 +194,8 @@ if ($opt eq ".opt") { pr2 "ocamlopt.opt not found"; } - my $opt_check = `which ocamldep.opt 2> /dev/null`; - if($opt_check =~ "/ocamldep.opt\$") { + my $opt_check3 = `ocamldep.opt -version 2>/dev/null`; + if($opt_check3 =~ /[0-9\.]+/) { pr2 "ocamldep.opt is present."; } else { @@ -199,8 +203,8 @@ if ($opt eq ".opt") { pr2 "ocamldep.opt not found"; } - my $opt_check = `which ocamllex.opt 2> /dev/null`; - if($opt_check =~ "/ocamllex.opt\$") { + my $opt_check4 = `ocamllex.opt -version 2>/dev/null`; + if($opt_check4 =~ /[0-9\.]+/) { pr2 "ocamllex.opt is present."; } else { @@ -276,8 +280,8 @@ if($python) { } my $ocamlfind=!check_config( - "which ocamlfind 2> /dev/null |", - '/ocamlfind$', + "ocamlfind ocamlc -version 2> /dev/null | ", + '^[0-9\.]+', "ocamlfind is present", "ocamlfind is missing -- Switch to local library copies." ); @@ -341,7 +345,7 @@ if($pcre) { pr2 "----------------------------------------------------------------------"; pr2 "Library configuration:"; -my %libPaths = {}; +my %libPaths; foreach my $lib (keys %libs) { my $isSelected = $libs{$lib}; if ($isSelected) { @@ -564,26 +568,49 @@ LNKLIBS=$strLnklibs OPTLNKLIBS=$strOptlnklibs INCLIBS=$strInclibs FLAGSLIBS=$strFlagslibs + +# selected ocaml modules "; +sub repl { + my $src = $_[0]; + my $dest = $_[1]; + my $key = $_[2]; + my $val = ucfirst($_[3]); + my $cmd = "sed -e 's|${key}|${val}|g' ${src} > ${dest}"; + if (-e $dest) { + unlink($dest); + } + `$cmd`; +} my $pythonprefix = $python ? "yes" : "no"; pr2 "Support for python scripting: $pythonprefix"; -`cd python; ln -sf ${pythonprefix}_pycocci.ml pycocci.ml; `; +repl('python/pycocci.ml.in', 'python/pycocci.ml', '@PYCOCCI_FILE@', "${pythonprefix}_pycocci"); +print CONFIG "PYCOCCI_FILE=${pythonprefix}_pycocci.ml\n"; +# `cd python; ln -sf ${pythonprefix}_pycocci.ml pycocci.ml; `; `cd python; make depend`; pr2 "Support for ocaml scripting: $ocamlprefix"; -`cd ocaml; ln -sf ${ocamlprefix}_prepare_ocamlcocci.ml prepare_ocamlcocci.ml;`; +repl('ocaml/prepare_ocamlcocci.ml.in', 'ocaml/prepare_ocamlcocci.ml', '@OCAMLCOCCI_FILE@', "${ocamlprefix}_prepare_ocamlcocci"); +print CONFIG "OCAMLCOCCI_FILE=${ocamlprefix}_prepare_ocamlcocci.ml\n"; +# `cd ocaml; ln -sf ${ocamlprefix}_prepare_ocamlcocci.ml prepare_ocamlcocci.ml;`; `cd ocaml; make depend`; my $pcresuffix = $pcre ? "pcre" : "str"; pr2 "Support for regexp: $pcresuffix"; -`cd globals; ln -sf regexp_${pcresuffix}.ml regexp.ml; touch regexp.ml;`; +repl('globals/regexp.ml.in', 'globals/regexp.ml', '@REGEXP_FILE@', "Regexp_${pcresuffix}"); +print CONFIG "REGEXP_FILE=regexp_${pcresuffix}.ml"; +# `cd globals; ln -sf regexp_${pcresuffix}.ml regexp.ml; touch regexp.ml;`; `cd globals; make depend`; pr2 "Modifying globals/config.ml"; -my $command = "perl -p -e 's#Not_found.\*#Not_found->\\\"$src\\\"#' globals/config.ml.in > globals/config.ml"; -`$command`; +my $version = `cat ./version | tr -d '\n'`; +`echo -n "$version" > ./version`; # make sure that there are no newlines after version +my $command1 = "sed -i -e 's|^let version = \".*\"\$|let version = \"$version\"|g' globals/config.ml.in"; # substitute version +my $command2 = "perl -p -e 's#Not_found.\*#Not_found->\\\"$src\\\"#' globals/config.ml.in > globals/config.ml"; +`$command1`; +`$command2`; pr2 "----------------------------------------------------------------------"; pr2 " Runtime dependency\n"; diff --git a/ctl/Makefile b/ctl/Makefile index 996dfbc..e087b66 100644 --- a/ctl/Makefile +++ b/ctl/Makefile @@ -1,4 +1,6 @@ -# Copyright 2010, INRIA, University of Copenhagen +# Copyright 2012, INRIA +# Julia Lawall, Gilles Muller +# Copyright 2010-2011, 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 diff --git a/ctl/ast_ctl.ml b/ctl/ast_ctl.ml index 30e8c60..191dace 100644 --- a/ctl/ast_ctl.ml +++ b/ctl/ast_ctl.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/ctl/ctl_engine.ml b/ctl/ctl_engine.ml index 776dcc6..c2b274c 100644 --- a/ctl/ctl_engine.ml +++ b/ctl/ctl_engine.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -1629,7 +1631,6 @@ type ('code,'value) cell = Frozen of 'code | Thawed of 'value let rec satloop unchecked required required_states ((grp,label,states) as m) phi env = let rec loop unchecked required required_states phi = - (*Common.profile_code "satloop" (fun _ -> *) let res = match phi with A.False -> [] @@ -1648,14 +1649,19 @@ let rec satloop unchecked required required_states triples_union (loop unchecked required required_states phi1) (loop unchecked required required_states phi2) - | A.SeqOr(phi1,phi2) -> + | A.SeqOr(phi1,phi2) -> let res1 = loop unchecked required required_states phi1 in let res2 = loop unchecked required required_states phi2 in let res1neg = unwitify res1 in - triples_union res1 - (triples_conj - (triples_complement (mkstates states required_states) res1neg) - res2) + let pm = !Flag_ctl.partial_match in + (match (pm,res1,res2) with + (false,res1,[]) -> res1 + | (false,[],res2) -> res2 + | _ -> + triples_union res1 + (triples_conj + (triples_complement (mkstates states required_states) res1neg) + res2)) | A.And(strict,phi1,phi2) -> (* phi1 is considered to be more likely to be [], because of the definition of asttoctl. Could use heuristics such as the size of @@ -1743,21 +1749,21 @@ let rec satloop unchecked required required_states phi1res phi2res)) | A.InnerAnd(phi) -> inner_and(loop unchecked required required_states phi) - | A.EX(dir,phi) -> + | A.EX(dir,phi) -> let new_required_states = get_children_required_states dir m required_states in satEX dir m (loop unchecked required new_required_states phi) required_states - | A.AX(dir,strict,phi) -> + | A.AX(dir,strict,phi) -> let new_required_states = get_children_required_states dir m required_states in let res = loop unchecked required new_required_states phi in strict_A1 strict satAX satEX dir m res required_states - | A.EF(dir,phi) -> + | A.EF(dir,phi) -> let new_required_states = get_reachable dir m required_states in satEF dir m (loop unchecked required new_required_states phi) new_required_states - | A.AF(dir,strict,phi) -> + | A.AF(dir,strict,phi) -> if !Flag_ctl.loop_in_src_code then loop unchecked required required_states @@ -1766,15 +1772,15 @@ let rec satloop unchecked required required_states let new_required_states = get_reachable dir m required_states in let res = loop unchecked required new_required_states phi in strict_A1 strict satAF satEF dir m res new_required_states - | A.EG(dir,phi) -> + | A.EG(dir,phi) -> let new_required_states = get_reachable dir m required_states in satEG dir m (loop unchecked required new_required_states phi) new_required_states - | A.AG(dir,strict,phi) -> + | A.AG(dir,strict,phi) -> let new_required_states = get_reachable dir m required_states in let res = loop unchecked required new_required_states phi in strict_A1 strict satAG satEF dir m res new_required_states - | A.EU(dir,phi1,phi2) -> + | A.EU(dir,phi1,phi2) -> let new_required_states = get_reachable dir m required_states in (match loop unchecked required new_required_states phi2 with [] when !pLazyOpt -> [] @@ -1822,17 +1828,18 @@ let rec satloop unchecked required required_states ) | A.Implies(phi1,phi2) -> loop unchecked required required_states (A.Or(A.Not phi1,phi2)) - | A.Exists (keep,v,phi) -> + | A.Exists (keep,v,phi) -> let new_required = drop_required v required in triples_witness v unchecked (not keep) (loop unchecked new_required required_states phi) - | A.Let(v,phi1,phi2) -> + + | A.Let(v,phi1,phi2) -> (* should only be used when the properties unchecked, required, and required_states are known to be the same or at least compatible between all the uses. this is not checked. *) let res = loop unchecked required required_states phi1 in satloop unchecked required required_states m phi2 ((v,res) :: env) - | A.LetR(dir,v,phi1,phi2) -> + | A.LetR(dir,v,phi1,phi2) -> (* should only be used when the properties unchecked, required, and required_states are known to be the same or at least compatible between all the uses. this is not checked. *) @@ -1840,7 +1847,7 @@ let rec satloop unchecked required required_states let new_required_states = get_reachable dir m required_states in let res = loop unchecked required new_required_states phi1 in satloop unchecked required required_states m phi2 ((v,res) :: env) - | A.Ref(v) -> + | A.Ref(v) -> let res = List.assoc v env in if unchecked then List.map (function (s,th,_) -> (s,th,[])) res @@ -1856,6 +1863,9 @@ let rec satloop unchecked required required_states (* SAT with tracking *) +let output str = + Printf.printf "%s\n" str + let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl ((_,label,states) as m) phi env = let anno res children = (annot lvl phi res children,res) in @@ -1870,24 +1880,24 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl A.False -> anno [] [] | A.True -> anno (triples_top states) [] | A.Pred(p) -> - Printf.printf "label\n"; flush stdout; + output "label"; anno (satLabel label required p) [] | A.Uncheck(phi1) -> let unchecked = if !pUNCHECK_OPT then true else false in let (child1,res1) = satv unchecked required required_states phi1 env in - Printf.printf "uncheck\n"; flush stdout; + output "uncheck"; anno res1 [child1] | A.Not(phi1) -> let (child,res) = satv unchecked required required_states phi1 env in - Printf.printf "not\n"; flush stdout; + output "not"; anno (triples_complement (mkstates states required_states) res) [child] | A.Or(phi1,phi2) -> let (child1,res1) = satv unchecked required required_states phi1 env in let (child2,res2) = satv unchecked required required_states phi2 env in - Printf.printf "or\n"; flush stdout; + output "or"; anno (triples_union res1 res2) [child1; child2] | A.SeqOr(phi1,phi2) -> let (child1,res1) = @@ -1896,27 +1906,32 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl satv unchecked required required_states phi2 env in let res1neg = List.map (function (s,th,_) -> (s,th,[])) res1 in - Printf.printf "seqor\n"; flush stdout; - anno (triples_union res1 - (triples_conj - (triples_complement (mkstates states required_states) - res1neg) - res2)) - [child1; child2] + output "seqor"; + let pm = !Flag_ctl.partial_match in + (match (pm,res1,res2) with + (false,res1,[]) -> anno res1 [child1; child2] + | (false,[],res2) -> anno res2 [child1; child2] + | _ -> + anno (triples_union res1 + (triples_conj + (triples_complement (mkstates states required_states) + res1neg) + res2)) + [child1; child2]) | A.And(strict,phi1,phi2) -> let pm = !Flag_ctl.partial_match in (match (pm,satv unchecked required required_states phi1 env) with (false,(child1,[])) -> - Printf.printf "and\n"; flush stdout; anno [] [child1] + output "and"; anno [] [child1] | (_,(child1,res1)) -> let new_required = extend_required res1 required in let new_required_states = get_required_states res1 in (match (pm,satv unchecked new_required new_required_states phi2 env) with (false,(child2,[])) -> - Printf.printf "and\n"; flush stdout; anno [] [child1;child2] + output "and"; anno [] [child1;child2] | (_,(child2,res2)) -> - Printf.printf "and\n"; flush stdout; + output "and"; let res = strict_triples_conj strict (mkstates states required_states) @@ -1926,7 +1941,7 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl let pm = !Flag_ctl.partial_match in (match (pm,satv unchecked required required_states phi1 env) with (false,(child1,[])) -> - Printf.printf "and\n"; flush stdout; anno [] [child1] + output "and"; anno [] [child1] | (_,(child1,res1)) -> let new_required = extend_required res1 required in let new_required_states = get_required_states res1 in @@ -1935,7 +1950,7 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl (match (pm,satv unchecked new_required new_required_states phi2 env) with (false,(child2,[])) -> - Printf.printf "andany\n"; flush stdout; + output "andany"; anno res1 [child1;child2] | (_,(child2,res2)) -> (match res1 with @@ -1953,7 +1968,7 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl | [(state,_,_)] -> let res2 = List.map (function (s,e,w) -> [(state,e,w)]) res2 in - Printf.printf "andany\n"; flush stdout; + output "andany"; let res = let s = mkstates states required_states in List.fold_left @@ -1968,7 +1983,7 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl let pm = !Flag_ctl.partial_match in (match (pm,satv unchecked required required_states phi1 env) with (false,(child1,[])) -> - Printf.printf "and\n"; flush stdout; anno [] [child1] + output "and"; anno [] [child1] | (_,(child1,res1)) -> let new_required = extend_required res1 required in let new_required_states = get_required_states res1 in @@ -1977,7 +1992,7 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl (match (pm,satv unchecked new_required new_required_states phi2 env) with (false,(child2,[])) -> - Printf.printf "andany\n"; flush stdout; + output "andany"; anno res1 [child1;child2] | (_,(child2,res2)) -> let res = @@ -1993,28 +2008,28 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl anno res [child1; child2])) | A.InnerAnd(phi1) -> let (child1,res1) = satv unchecked required required_states phi1 env in - Printf.printf "uncheck\n"; flush stdout; + output "uncheck"; anno (inner_and res1) [child1] | A.EX(dir,phi1) -> let new_required_states = get_children_required_states dir m required_states in let (child,res) = satv unchecked required new_required_states phi1 env in - Printf.printf "EX\n"; flush stdout; + output "EX"; anno (satEX dir m res required_states) [child] | A.AX(dir,strict,phi1) -> let new_required_states = get_children_required_states dir m required_states in let (child,res) = satv unchecked required new_required_states phi1 env in - Printf.printf "AX\n"; flush stdout; + output "AX"; let res = strict_A1 strict satAX satEX dir m res required_states in anno res [child] | A.EF(dir,phi1) -> let new_required_states = get_reachable dir m required_states in let (child,res) = satv unchecked required new_required_states phi1 env in - Printf.printf "EF\n"; flush stdout; + output "EF"; anno (satEF dir m res new_required_states) [child] | A.AF(dir,strict,phi1) -> if !Flag_ctl.loop_in_src_code @@ -2026,7 +2041,7 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl (let new_required_states = get_reachable dir m required_states in let (child,res) = satv unchecked required new_required_states phi1 env in - Printf.printf "AF\n"; flush stdout; + output "AF"; let res = strict_A1 strict satAF satEF dir m res new_required_states in anno res [child]) @@ -2034,13 +2049,13 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl let new_required_states = get_reachable dir m required_states in let (child,res) = satv unchecked required new_required_states phi1 env in - Printf.printf "EG\n"; flush stdout; + output "EG"; anno (satEG dir m res new_required_states) [child] | A.AG(dir,strict,phi1) -> let new_required_states = get_reachable dir m required_states in let (child,res) = satv unchecked required new_required_states phi1 env in - Printf.printf "AG\n"; flush stdout; + output "AG"; let res = strict_A1 strict satAG satEF dir m res new_required_states in anno res [child] @@ -2048,13 +2063,13 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl let new_required_states = get_reachable dir m required_states in (match satv unchecked required new_required_states phi2 env with (child2,[]) -> - Printf.printf "EU\n"; flush stdout; + output "EU"; anno [] [child2] | (child2,res2) -> let new_required = extend_required res2 required in let (child1,res1) = satv unchecked new_required new_required_states phi1 env in - Printf.printf "EU\n"; flush stdout; + output "EU"; anno (satEU dir m res1 res2 new_required_states (fun y str -> ())) [child1; child2]) | A.AW(dir,strict,phi1,phi2) -> @@ -2062,12 +2077,12 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl let new_required_states = get_reachable dir m required_states in (match satv unchecked required new_required_states phi2 env with (child2,[]) -> - Printf.printf "AW %b\n" unchecked; flush stdout; anno [] [child2] + output (Printf.sprintf "AW %b" unchecked); anno [] [child2] | (child2,res2) -> let new_required = extend_required res2 required in let (child1,res1) = satv unchecked new_required new_required_states phi1 env in - Printf.printf "AW %b\n" unchecked; flush stdout; + output (Printf.sprintf "AW %b" unchecked); let res = strict_A2 strict satAW satEF dir m res1 res2 new_required_states in @@ -2076,12 +2091,12 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl let new_required_states = get_reachable dir m required_states in (match satv unchecked required new_required_states phi2 env with (child2,[]) -> - Printf.printf "AU\n"; flush stdout; anno [] [child2] + output "AU"; anno [] [child2] | (child2,s2) -> let new_required = extend_required s2 required in let (child1,s1) = satv unchecked new_required new_required_states phi1 env in - Printf.printf "AU\n"; flush stdout; + output "AU"; let res = strict_A2au strict satAU satEF dir m s1 s2 new_required_states (fun y str -> ()) in @@ -2094,7 +2109,7 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl A[E[phi1 U phi2] & phi1 W phi2] the and is nonstrict *) (* tmp_res is bigger than s2, so perhaps closer to s1 *) - Printf.printf "AW\n"; flush stdout; + output "AW"; let s1 = triples_conj (satEU dir m s1 tmp_res new_required_states @@ -2112,7 +2127,7 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl let new_required = drop_required v required in let (child,res) = satv unchecked new_required required_states phi1 env in - Printf.printf "exists\n"; flush stdout; + output "exists"; anno (triples_witness v unchecked (not keep) res) [child] | A.Let(v,phi1,phi2) -> let (child1,res1) = @@ -2128,7 +2143,7 @@ let rec sat_verbose_loop unchecked required required_states annot maxlvl lvl satv unchecked required required_states phi2 ((v,res1) :: env) in anno res2 [child1;child2] | A.Ref(v) -> - Printf.printf "Ref\n"; flush stdout; + output "Ref"; let res = List.assoc v env in let res = if unchecked @@ -2495,7 +2510,6 @@ let sat m phi reqopt = then Common.pr2 "missing something required"; []) with Steps -> [] -;; (* ********************************************************************** *) (* End of Module: CTL_ENGINE *) diff --git a/ctl/ctl_engine.mli b/ctl/ctl_engine.mli index 3251c0a..dca8b6e 100644 --- a/ctl/ctl_engine.mli +++ b/ctl/ctl_engine.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/ctl/flag_ctl.ml b/ctl/flag_ctl.ml index d840ef0..2704ee8 100644 --- a/ctl/flag_ctl.ml +++ b/ctl/flag_ctl.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/ctl/pretty_print_ctl.ml b/ctl/pretty_print_ctl.ml index 9c7fbf1..4eb36bb 100644 --- a/ctl/pretty_print_ctl.ml +++ b/ctl/pretty_print_ctl.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/ctl/pretty_print_ctl.mli b/ctl/pretty_print_ctl.mli index 4819215..0755993 100644 --- a/ctl/pretty_print_ctl.mli +++ b/ctl/pretty_print_ctl.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/ctl/test_ctl.ml b/ctl/test_ctl.ml index c53681c..aafb47b 100644 --- a/ctl/test_ctl.ml +++ b/ctl/test_ctl.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/ctl/wrapper_ctl.ml b/ctl/wrapper_ctl.ml index 24f9c63..067317c 100644 --- a/ctl/wrapper_ctl.ml +++ b/ctl/wrapper_ctl.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/ctl/wrapper_ctl.mli b/ctl/wrapper_ctl.mli index 17436dd..b33021a 100644 --- a/ctl/wrapper_ctl.mli +++ b/ctl/wrapper_ctl.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/docs/manual/cocci_syntax.tex b/docs/manual/cocci_syntax.tex index ca65f89..82311bc 100644 --- a/docs/manual/cocci_syntax.tex +++ b/docs/manual/cocci_syntax.tex @@ -217,6 +217,17 @@ considered C identifiers when encountered in the body of the rule. Identifiers in the body of the rule that are not declared explicitly are by default considered symbols, thus symbol declarations are optional. +A position metavariable is used by attaching it using \texttt{@} to any +token, including another metavariable. Its value is the position (file, +line number, etc.) of the code matched by the token. It is also possible +to attach expression, declaration, type, initialiser, and statement +metavariables in this manner. In that case, the metavariable is bound to +the closest enclosing expression, declaration, etc. If such a metavariable +is itself followed by a position metavariable, the position metavariable +applies to the metavariable that it follows, and not to the attached token. +This makes it possible to get eg the starting and ending position of {\tt + f(...)}, by writing {\tt f(...)@E@p}, for expression metavariable {\tt E} +and position metavariable {\tt p}. \begin{grammar} \RULE{\rt{ids}} diff --git a/docs/manual/main_grammar.pdf b/docs/manual/main_grammar.pdf index 6370f06bc327e6f5f33d83524a75131ece6c669e..3a529fdf3649eafd6035e59c693bae4a6f65d0ed 100644 GIT binary patch delta 53514 zcmY&<1yo!;*ER0$?(WRsURtbZp}0eFcPk7OcNt)CcX!uPthm$SrMP=3_D|o(zJDzs zhX}(axCZP*os5Jnyk%a|!bg%@yBUE@F$ruPP{kZszIWG;RyTvqAGs>US1m)0)jQBMbpz z+2ngXFjxz<`f7!e#SbtfAZ26(Fx&+^iP`5}fMo=S({d}-UM@j8>&NBR+@rIE&6{Th5Fcy+a zW!V0Ncl)m~l5yT-O$&sl1P0;z5UH$I(`v~pS(2m|&B*Al9FJZ!>}RfJ z895VY)l!czW8C|M1*q6uEuQOsoLH&U3O2|b=4OB~Q-PzA!s~;3y9r|^pwE-pW3u?J z>Z6j>=LdAom+gxIYy{3|^iBA#!c->MwANJTUJ@*K`OD-I;@M=ba9?Ut_f zq~1@g?>upDk;|{TB(>|cD<&oFL>Hsc(GxudV|W8E}dVya*-z?j5uS8+sOy# z#p9?>H0%m5jp`(R{>>Yc-O2_{%s9I$QF)}98PecCzbg4td*6IoFCg{_o4qWXI3LlI z&cf!IZQHmw@)A8mCqMV62^KDB@>{>j4x=V#MheDkN!P{AOI0GGkJVyXLT?dS>GZ`1 z;}Wzu$j>o?>lZrT^02GzmgL0e$wTDpUe;ILlLOl5&+WVeI?e2;PUYtd_L!u-N~Isd zF;CID(*_H?E7`omdOHdxt1s!~6R><-ZY^Vu5!_G8U|m04Sf)KXxvZ6g@_!qoBLSH| z%wsf6OW72*$~lO9ZDTLF7SL<9xTxTCaL5=tw^6t$?opgXAl8P^y!xckKcPqcQIunh zf{8qf6d~GJ(z}r6Tq0!lQU1*>+e=?RDXWfNYpmKZL-=Azb^wyC{X4EbA=n>-}V&RdMuoJkdYvAQqJ z6D}2#Sgd%z)-<1dLn_NCtrMwa;UO3;TV8e-C=CS$^7Wb9Cf0rNJ9x511mDukqQ~tNO?ymS7dz=axK<;#qW056165lcr`LHG zi5L0>Tw~gikqhFN7G;?t6f1G>O5@FH1z_tnT`-8TVwXK*`)&P^Qy?(N3gLAQ? zcH8LUl=A1YJ1e-O;6XAze2bksY}ZWnM-~Y>0i4|I zqja27%!J;TV0zgh{7+=emLmf5uAjMMA5q%F+Q(@ChpCq8IvDR)!^sO~j)GQlTS(sw zoiGI%-YE60o7ZozS8T{8)c6}EO;}@vrbGo`9Txbe;oDMAw1L7@_M0-ydec`07Uda; z@Zou7!ee&2_BJA5J~K?SEzL2{Oj(8ID~b|6jpO-cQ5DPit3~8{t->RoaCgdgOCWQJ zlVEn=1@)}K?Ca_&;GtT%a^ZFMR%^b5jJgA=dVXENI)@u`*SOdG{DiLU;;D1CvCU_y zpvU##b?|V9tp-~Bm=zeUB10&C6LIvtw-FPmlD%3jw3&U}ZE1NxNnCQhI(Z4sH>w=? zYHd5YYj=y{SC0Cj40&xdUCCCBd>5BVzME@Eebmo9`k(s?ABh|2U{6ne{8Ad`k~Jn! zbDmWtFx%sgo5pVihE9sR- z9ReQq*XyS5A#NExch72NVTU*wujOC5bUI{q%6(1?(XHD%`I{)!=M5_peukE=h$}I8&6D^Sl_*3E&4jYsay$Y2T?uNw!W2@5^HE1pw5k`X~h*f@nm6tRuNyL zjz{^z0eJDb9@WOq0twQ-b+{k%D^KxK(HYZp-k;yI1gR?zp~C|hwRu^k(WeD1GkwQi zPaS^~JZo9KyZo*1jcs0A)_CbkVJ&}D(mS@|k+bYcEE{>(A!snudYMGepP7xqfG=(D znFU`>i(9~m146^**_Kj~L7sDZoCa+_6pSa92wi+F5D2^}7J=apI!jme$>j~)TQU4% zUfXU+GnrwoqM`ZS%1dwayZ{j^7c+~bxDRFKCBkww> zCmpZ?F(U|fHm4As#~T3-b4H+z$mzS^;ckv$GMEkWW1s?Z62c%j8Hxk9rBZ*R9S_x7 zu55Rr#D4#9dzvJ+YP&wNFsgIbpsgi%dE0Xf8!ObAS>12uW8zo!Je`yo(TupoX1GFa zQ(sHQL|3`-Xk0%o+?E(Ke-0Lxmw4BfOfsIg8x%=%ZL~4_{qz%C-@CWicccWk%muIo z`<-2UV@{yV278=K@eI_-ymXqTSAu#6WUjBjqiuk1OdDh=J}OM@HPA3J$)Q8CwH2tuh!aaC zU)CqOBaYeBp~}YuX97dCe)|FUT$X@c&D)=XiMaq2A}Dmbw4OK|6<>@qsV@Z$FQB`GDyy)O1h1|2%lMA(5u~EU0z+vPsN|?$3bnEf6 z6r?&p!8*h3yoEoOg%jMU>S#$M{BBnRmFn|jkZ}E9?s5ZseXd%UB+pP?(MVi~5Wh+n z=us{+DE=@pX=RIB@`YqdS;*4%W0r19gFzHa{)}9A%q5 z)ZQ|XHrVsqz(F!<-l-?yJq=r2^HDb-U>4y^dFJC%E!+KvluToT$4|xBi?qbWWe*MQsiSos_fxY)t*B4%Qyps;zBM1=c8!nfT zf;Uey-HMkeXLtc&Wj!<%+~D%`o8u2Su;$)0gy;_Kw|isxW1#Mz9>x;(g=)mh1RyQ{ z&Ga`$nHy%^_~9J}uv1Oq1pb*V*w-CeuCGTNh3Mx*IG6a<*l~0ugjsQ&VX+Gl+YXU9 zl3I)|H@n`1n?!V?rtNHUIk`bZ5Te7@vRUdgC}UuoB#3ms>*px(+Xe9@<1pVRmwL&Z zh;~Zg^$$HA;t;jMbhk% zUNfK}R6NipeyOyn(550%y&hn6g6ACSNJDya#z2^*Ahg(9wu>a+Nfl-(S_M*nH;7W` z0a%)t)~Fk_-=$-mo&fuNgK6u@T}m!-4;sK2vLAAek-66?SUs3Z(Hbxw5N-hLYZr!TunK z*S*O4B!`Nfp`d3W7lx#bZbwuverm_rv|7oWR^H52U`H9Uc(QtTH&QM~= z=O$rGx<+|*;OuZod$MI{wL!e!0jwT^W?Frr24&P-al3nm2HX!PHh7T01w(d_19KTg z=nJ6tq*B&PEadWcSG9Ffc3R&$mN+E4Fgqb=$)Q~?7SkrKr)~{~gywLKGF#jGB+C4B zC>w54Bi5fjRy)Z&tAMU^FfoK_y!e<915X&(nCP8M7n`@>lp-JU;nS&WV-s{963nadMiPO=i zp)9W`(RFl4K4bZ8XzXJv?Js5GOkcha)Cz0E7L{T;`VlZ#I`&3Ue99DI8>@(Bo&bZcQ6MCHCrGl3< zLe>`q{T}X3gQJ;tMg{svexYw)kt~b$^89x~hQ8>fzISIR=dEJc9`!IzBZJ^Du-5gH zd&rq291$Jqy_QC%u!{I5icf+uIhr70Y3K5;A&@(hNl^(m%OTXu7_aplxb8c;AOp`!5@Uf)o)f0Om6p_w$4f&6^U2`%?diK?YWWRAE=n|)3HGr5jy>R#pqx9HHOm>}duJ8=u9_$iYl&3N%?|tmh%KhV+FF}1qXdr-$>$EY4AQnH z{uhHUqd!vx=y4t<3cpFdxT|W-6--e*8v--Pl&$eW!=;L3b?*U^3aKw0QioU9J!W>V znEOS-1_mqIqm_qR?jtV2l%8&wsE@ibY#7s_w|9%zV}l2&Y-+pweuw^ zF?#|~)K+wN&cU|S$MI|#%th@!3+_hHjT&YjgLfd-Rmq^!tL+U&Cc7N(=c*u>oSUgE z@c_9gP--K>Z#hK!d;Q-=UCtKT$=aKdcHf>wiNEAXfSdy;5~Y*1SLbI)%$;l&=1Q;U zM_FT$n4_GAB7dm8SP58okUl&`$n^9z$!UMby4LEqAFO-=zregFRP6${1qXvGL*#Aw z|43?e8UR1=?~?EDlK<~g;O|oK?^5XRQuwb@famY>f6AQ(An-Szz~6iVfAb0OgHJ-( zz~OOYrcfJ+zv zHYNRUkZ8$@R6qb97m$~a<{vmv5WofCgVz5ChtPIIr>+xa3TE-e1fQr#f~De62!TK@ z9$vx!nE%()|2O@@SNM=RH&_vJ0WN?5)IWb)0HOX8hC1LsgFmaZCxit#t$>xF;^X1v z5)=mf3+ID6Ob`IA|A*I(GK1xZ%)EhxPBIP!p9ktu0U97bkV}9^fQBEy!vzE;L)Rvd$|MQ0u1QV=mE&*M*zkKqK2~dEKix&X( z$sZF4O*bqF)FsN`_wo49v0McFZ!FLbgrKn_{9jP~Wev%%hyB;%kY7Wvm=MYuSZE)> zzg+W=)!(l9zeZ5sK>UVau^=^2gMXd#j{zSv;01U9H2>E^J4)rxsK8MWOo*cvti+#~ zCg20`bMgHb2Yf(itbw;o|BWqJ0SIjztRne8ll}|-=kvtRD@^krJTjR8?5g_5@5qFF zyg)8K0senO;D3Gm-w1#e0K1qdlK(Twzv2H(@=q84L;qR+&NM7=cZ3AxKdb)_Hy^JM zm$0xP&41jH$(BR_K|U@)US1krfB=^epD+yo>U9BL$SXLgm-Czv!89r6|6v4qpdk;P z`u~R^0uQEW5JI;XEF> zb=04SWF$gdeEfeuLz9r8v2gqVO+TOkfZ$hYj0jNQ^Fw&qVDZ8GF<5^%5O{dF1R$_t z&@Ls@m=O5{p}QP}mJ3?-Ph%qI;|FjF@e2Lb!~bRD1AuWL^oV@WO;8x(f(?b=r_mwt z0HM2;Aec6t4NOx>3Z7`kgp|R;VSt^}$-t0wS$OEy19=66V+E1fIc*PJJUpTKCkM@~ z_xy5I-^`%lROfRD{Iz0;qc;EDj5d)?VbBxgZ{-=rZR63hErj@6#^4ldPrMOmJ~p@} z&Gr0SMdIpyVxkip#QTj7U$<&|aN>k6T80TMQ&5z^q`PWQl$%N|Y4r5*O7NFSaq>t( zgeSR+TXR&gfduFyp~xu}cHAT^4+?L=g6xO4GpEe7U#70N!m+RIkHiaY*Cc8?8uD6S zuM_I)5#0>Y3M34v6zSR=4eHu3CdWp8792jcEv9cjZiypmy>ZkwKCt#N*79o7Y`Lzo zMdCUvagp(geV;Rb6si8&ASC5CV)fvZ`a`7phIDBg9|s1=Z)Ae##v(>{H+-PR{dth9 zGeZE|L*LWFaAu{p?4XPF>SnU}%#^!d=)uPjI)o8u5hiv4Uab7MW zI)96H{X#RG5|tWHi=Fu{bXq>RVOBxcfdVc1$YFgJt{X1b4(WTF8AMQA2OE(BCyF?6 z+ey$}i%=z@NKhZihPsjqWb(P$+>B!9;Bqs=|64t1N%i$Fj(g3Z>1lNx2bjfypC<|# z<(J~M(^$X84|wZ?B^~yCs=DyKDI_F5n*GSWjc^fpC2e~hM;{@`PQ2MYG?d{=>w^3n zN5DdOeBrG^#0_628~XDDItK>h}UxY(w${N?;t3$ZpK}>*W^@II81BMo+0- zFLWnokk0(VY2sveFarsp{!()G9nND<`5nSEzs~|(hj=)8j({9Zh?XiVo^w1$AOSWb zjhRU6H3JvR1^ftC?P=V-;S@(Dsg@6UR2VgN=ZOhJu4C7ZUd!SxZcJQzN-WBU^|`T7 zgjY*5ku9j2{;u>Xn)RZNtL4E;k9masD`*@LkO~K~wtrU1x+I>3(16d^UK(&O)_69# zxCY(Vg7vN1+82TdiWF4xN~&FYV-czs{$SPi$Qb#CCS+#2JdO1&>}4JMM#o*n-X~}1&Wk3dDAk1?w~__A3&TW4@-r*@KS}2GIZC- z@K!2Pmtw^&@~d)$0_Gd!M*k-d6h%4!FtBd{F@@ghoAD>DjWQ$m=22xH zB@B}?H$zc64DhvBZk8}D#0PuWk8hUsRe)beP5ohBL1f|1Ll1kuul}IH0ZEFI9SBD( zZJy@WR|kx~9Zb-7D(vu%3r5_Y%K$(!eZbruUETeZQ-AaN-P&Xc$K}?5dGwp99e!P; zrC?Oy2PIoDYB`c3?Vy_hJNed*=^mBX&7Cf0wof6iELUpYUeIY3d;6Q%)HuE<52`oU z%EqRxHKLq#;dqs+H?g0x7CxSfRDy3ZE?ad*uEzB`4TOHfE9-|BN~)E#DT|g z+8U?LfWyTE*I!A@g2=plQbG>KmhVV4`dAqiU9e8=iB*6&sKqKm_HHi#(R49})=KZ8 z^g_2Tw4}Ora^|v2wmeKKsk%yglh#iFq12j82tY}MsUdrH?rk9Je zd{4GzLfA@?vD6o5^Iw7{LPGuh35(xb``B`>#%*ria*D5`k@Mosc`>oFlU7d56 zI*{7OnzrW0@(-x{MWRw_VR9mSl&8(_2=ng;Z5Q$K8J3qkaR_+ch!KPCbG(c_4RfQ~ zD08sLZiT*(H>~8B`@zTTBQ3XQvu3cyPBf5Mok#{RExRX7E+2muLQ?&;-tbg}c-NKd zO~B_^Xh^MCrz^N)sJo?^vK;LNZi(b^wJwu58VN~4O2(P9`@%4U?IDi84nBQ4u`7jV z5i^jyUF|HdgR@&{%XJ5Rzv7*bg3}u=pBBl{Pw_~y9P`wt_9EBQ*zHTy)?e3*^Lm;l z$Porj^S>viF&X5^`shpW&Hc@%KqI8bUu}+Sz42MdjkKEdzn^tyn1f8s3h>F8KJyY1 z<;hh(j26f>pb7Iv4UB5L-OfF+AbPoeNAblXbhXuD)@OM@_LD?-6NA~DMH(YsM#92> zx;PaX6u4A*sv*G+;a7GvHuus*ZHR8Rm7S+M>_3Md{iOOl5}X;#eRswZC$N zVeE{`6p3;^UTPj`R?;jMWa8GYg`Be&Y=Gx5=FEV|(C_q$$=5PJ^(KudPo8cU@?`8L$ zEozt4p0f9cf;oJGdoI1~Yqwjq2dGz!?6Of1Ka_P(4iT6ZT@Xh#&CLj&JXFfvatccQ z+Q;VCQ9Fv+uHk+o|GUUfPE|(!w`5#Gt8*+j#7NDr5pmpg&rwv*)D7_@k{iE>a_-`I z19ubesSpHMQar)qc-_z+Nv7R4+EsfdWt&55bj%D%GzQjL1N!8W$E40N+-yAqqn^J|E;&IxGPM ze+HHWQUVKy4K}H?hX)D*|6Ihef^_xck6SPUBzw)M#79VF1fg%uNcm-GTwmfeJ)~-I zh*3?%=*Np+FlNfky-=wqi?wL`DI~zWN@QLkkVz!CNld=~^G=jx@Am2aaHm%;=)Etv zQ7mzE_q0u6hlw!DCB^X+E3>vxHEZm<{foz)w#m3v44tX;AkAQdVRTI`C}Yn5-e(5; zjJ!?@y z0P*^plR;JMI0rA*u z15E`8x`3^BFDSPD;b%OxAYfQx88p1K})T?4GYr9oCjm zSk|jaI)a7Fv^ev1Yi`ubMeSxQ^=8PCLUxLW2Qdb@icn$FDW8f9pGVeLvcB}F-qCw-87=h&|#+>(I9w>~NNVGG6#`fFdb}?*b z@)vIjoQ3qjRcpAUs9^F&-|Z14ry|M1)@0tf`;d{`?l6QvJ(2Ah>ea(a!@Uo) zC^_e05993egU;lxb#DJVr6%LkX)J#hW(JO}1B~osf*EF3O_m*JreE&KB<8d}tYayc zVl?u-%x$xgCLl5W{)PT)3+)rsJ=YkVk7&+MJ#g{v@o!Ei1Pg86z77_6ALL7sIV;nd z-9V`8PR46>^TnheC#)hY3G2KAclGmERR;BM0G#Ce9$o&VG{wdeRie-|HCI zLws+BIAW1zD5ncM|v( ziJ$sjgzL58EF#!22!_~;nAYdm4u?0Q?y#fE7nB5suVU1F(2(z`@-%7x zwAj&3BJojghGf>MqR)XGJIw0HcIIOmD`i0KiHC2k1~l6(rr46s z%NkHZWJ{Cd4wlM6Qu&a`frx#|5S?-rfnp_FJvR|^^su)WZFO%fr7SECr%rsZqlaMK9XFsaB}UWYYk2QDoux9O?P-quZlX zPC)INHPJGkCAp2CvgMc6f4!=tios)HS#bd;2HjrdSHd79@G4H1pU14hNws-aFTgb9 z@1n@){hXm9=l8pTp;*NE2=^u9M_mR;gIc2M_tgv)nnWYj6&!9;WzH;F9FE)%T#r}< zU5tl2Gh=Y0l2X0!nMlKzW)2m>4ww;hp-7O~K~=r(IC%Xey&-&(RCb5U!xKI>>GHV% z2}MK6TcJh!GroCt)^gb$5Kac3L5=Z7@kDKMmIFOQRC|R~VvfU_e$)DE<39cOd6kq; zmeN(<-!ydeJ#db*xg1Xh&ps1jO6G}>cG|6EuJg8gFZCHN&C>{JQ3^?96kvV1o(6(2 z;^vpBG!8QB`i*LZ4&8@MMM*^OmDq*T{WKmH5hO=}=VrW1wPY+zGhFd+yMwr$*N$f` zJL0ZYJ5`D7QUOR)r!&Tu7iOYMJWuG7Su?(p2`BmH}&bD@BB?%?uq zQtXb%ro32$BaCCcQ0};mV!e>P6!x>&N=hp(K(A1|5%Fk1@60LT z)Afp#n0m?N6P!LF+>u8TU+Pc0K^9AbnUMlsRFoX~ukX!#w!u^eSqdd$%+1*(=(4 zT|TjnP%q$U`(X$e^Xn*4_*!NIi6_~6?n21Gsqs6qw9 z3gLqR&Cq1zpS1j6*-Ga>RcJz45KP@n2(D{pgahzHUPR#t!N<+aNYJdWkPr}z+lmk7 zXkkQvX7`2v%3)f!Fd+klpmza+f3=piFhHdrG`S9dreLAy-9L3`j#H5LPrD$rjR%^n z75rbDSt~SMD#RrO#%?79=RqsbyB#5Le;WaKt(6ImhY#XR1MQxy4cf!sjIizaV7<2g z82{AM{?z|w{Zn6TV?_MJ%9GSC{0}1`SiPO`U&gq05-@coU*q@oPBkz}3?{??9hMZ* zi3Yt4P>TMm)_RWy8{7$Aj>LqJ55nR=riNirAo)YE+HgPt2+klZ`Tw4TQx3yIf8kmw zhvC8O@H~6~2yG1<0V1!UkRa5_!pxwm4s-Wn!&W8(7xnt=Li1(9a-+DH_L!siKS-fgKXKg&6}; z!ypMPhFQKO?@C<}M}szC^N^kEptm^>N0vWrO+GxtN1>V6eQ>ha-8{b|HQ9yXsb6aJ zd|ZK-BM(e(4k`w3NuoZckgq(l)9U+W_7Z7@b)n;dSu^8gq}2Jd)+~%&$g5|<5iR}ak4dWFW6sZ1>s0CgqQUW+n-{e zh#~&h@MNG~9#H+u!6axA^_OwQQe$(o`vatPqPObV3d=GMOEz_gPx65Dd5F*Xk$mOL z_;2PD$woRy2YdLu(uda7>CszB_et5?7h9ZflEBx`f~exJ$?X&c1M?FvRP{*7hkI#Z zKfHKx%st*EK5j@|fYAG2IIo|36CaF)e;adMyc~i2pKGV-RG@F!`)YxZH#bC)&b>zW zb>W{+NdpNsb7joStzKTPW*PyF?hleaPug~bg`m<05DdQ8{KE=SfE~DZetKs5N#A;x z#%$O21B=zJwFw%}V&mgVBWN_G3N!YYbD}Et+4Z5e1+MJiVE;K01Nb!ObN@xn{|6ey?Z89k=1 zIVg5ZvhZr<-PHH>|^zB$;p=tKYDs?`ruraf$N$&SSz3YW`Pzv2zs04vva@ExF-%1agJl z)~Q9}qq5pQLPjA!{qH0687Qlg<(`|qGuGJ)8JrtDd#d zJTF4{X1W_ZiHb+L=6*s=hSAfvo~2941_9{5ufWAmHdw9SfMlOXQWbh79?Wr(UMTh4 z2Vw31O1&{>FszaOlwU}Sw(V1PK8y&mB4BJf5`heIYw0e&%wIVd>3yhbkjs2UEhx(o zU4lmha01b?fiEI4xh%_&he@MY=jv&TMk`t6oTusl3#J!%=vRF*=L^5%QkYLK2xV-% zgnYMNxq7{nsVh;IjddgxQtb-B=f@RDdZL2rwhOkmHGtS9Z4nFi#2X87nM4d`kxg>Up&{%#Pz<5Ql(qQ{#FM?o-w&$)(b=L7zcRrs#zflZarWIO& z?Ce=4XJSpV)cZ3OT_1LMzxMQA-e1W<8l?xG{Q-tqtIdA5<(q5*&I*;3kBF!h$KdYn z`+Phq_bpC;B#|2d9|qX`$_YZ7?*c{N94Cc>tsEJKGl&lLW60ibS1<&F;Aq)ZF5E{2 z6-*%QyF#68diIhE7GG7DNfdA^-?+Z@Rlj{7NrtCYhIJpYK&)Vas>!QQt8E|`|w9pk-xNr2~Tlq{n|>EF0ACaUOq|0IosZp8-=c;7dTI=&9sgGUw^ zPtmVH%)LnP$ zGKATFLIW`jlaHw|#h;0=$R~cym%*LFwbeMak*unRWlok0r8Qwavw|~!R5n;k#X-Dp z)X~jSUbU(Guo1Jl&eqkln{%DIj`4a_hh5iO!sB4cx#4^@v$)C;6!Bi+4)|s zV=ZtnE!rY%+j9b;Uv{#PuDHvfVmAr9%$sy>s|!T@4aCha80 zt`E#dGU9Hle4qgMJA#ehzeW&(t*ysGO2zyW+iu<9rp9Q5eanKrBb?3W4KimTENS^} z-8B!7vOFR8pT)+m7v_c7>RuN;J6PhlYAM!Kvd!0}5&Br!sAS`oks)u#%YY!-5 z$#)Tvd{${MGdYHZ=&tDgRjgYAYbd;G8_FqD$mrwu>|v1X={)zkI5Stjx4Xuj&+C9% zPmOq(;ryw+RRRWLA}#qvRqQG(XzpDxZt%R!OB zgfeY$Q%p*&XKPrAiLc}4ju>`Q@K9=ndVsGde>CpR0|$9*h;?^xx}#dUH6k)OjNGLr zfPxJz_OKw@{RP8H+i!#GH)AEGh4pWF)8*idM{-{^eD`K4nX&Z$Jy23Y8b5V#E(v+* zI(}XKj@2?S(v%I+RnhD0s;-1EtmucH17bF&u_aHLi0_x@!n+RE@ZU*67`g>VuJDhum?y=TtdT3SJ${6;~8;aOJvFf6Nz)?7pxKWc3t^~0Ws{wUw(}%}2 zo`-bp)1J;X@N+PoS#RbG?h?9(@`oI+iPigOoe}i|_3YAySnZWjrut1RY)*+B1nWqz zS^XTh8A>bTN}6miZ}uExhTd^7Rz=5_%BsG>*A`t^l@n#o4;{`oGw(HeHhme)G23!} z)WC3p`nxSm=U*0OYCeBOrZAhS5UIHEh@E&_r@+cDmn3evQ24?wJ&9F3go$usdNe?# zP&zW_=RE(_vcC|c6X3P`7@PM!=?Q;=vH|?`;TY?Lsx6u4lhc+q(@-nbsyO5`K@gt~ z+h8R7#G9#)CTX5{*Pj*8nmz-rl$p99HSa4UKpqQL>jo$Y#n!L$`8rqRK$IdOqTHv_ zcO)FuN6E~0`0;}{ji|wLB0NVA<0%?mLL9B$n`)zd4twsF-uO~&6BB(OH zf}G*Bu^Y3a;KhDR1uZY;Om!`vw7z-Lg>)k2{RqYHV`tM0FVGmH{ndwyE~e(DC1>yN zr6?yq6obNX_$oW@;XTVt%cIJ^<~!AZP_6yTa7Ah zb0A`L<3oCI&D*-ClPp8BYZ~2l9MA*n`kU{3Z&Dh3_6$JV^G1mU<-X@9su9Ni2dtnp zm@B%USwkC+LkchVt|3}JnVD^HqN~H7&?!RP%AQYYHrs>Xd+~%Ptw@Rb;lbZrWgHS~ zy^P_{>D5vktu-_Fn7^AVAygp%Q4jh|S-kB$0Z;N^xB8CcN|aus*VhmN6wtmEg-5bs z0|idgb0XeygTn*S#>*(ON+4Yo1yzCjfyE+=g}x0(<}t_+g#7MsWlw_4DPqf9I#A{qwJ2qU)d2ZtL1xw}V}2$G!A zlzd|B#rOxl8ohmN&)cDqSrDbWmPnrFE<9O>y>`2&Qr%Srzu2eq-Pydvp>zh+HbkvePS=-40sFXsK3T0Fa=E%e(WIDif9!# z6MGD}`y^(Uoug?c|GPQBlGpBc&pZXD;+bK{F019T!NkCI+1^l``Km%vf&KiE|J08E z`I8a0NLO-x`*9{%6;?D*ew$1$jR~V@$}jrX&7|?g-rdZz>eDrrnwmAzKLR&$=$)>J-Mg?^8qD zI|@JQGO3an4)@~ux*w;$dmR?)ZL z9ywRH^TDiTj6$k?9DBVlxPAjMyjFibivZNnue7WxcsTKs@US4J$jpml?UOk%YLc;| zGcP~H`^!8t=aO`LF!cL4jGy#{4^N?|4hd5{mS4GBG6E6-CetzK{ZrD?My0)>o43aW(3ESIiQv=W48_SWjGTVn0jsXd&OPo z(JVB`KG}WsD&`cWjQC6Gnto9#*#U^Xzb&Clx`EHgL zbm9DipK9rRQSTJLi}>q!+*$BXha>V|2Olq(^%cU)y^La``2o@{q}F<>FSlyT3RYTk zTYHud44S2NRJmk1^NoFMPmMh^JfuZKe-QL(M@vi@IT z&mE8T_kD^8l`YCjAt}!us3as32^o=1Bzq-231x+Bk`|S;iAV|!A;~HcDx*SHl0?7r z_%?Xo&+GN`&*#&5?mYMGbME^p-MVyY&o5Tlrv2e!&s@^AoAUzM-4-nsls~7-NIooN z@aAz&EUw%bS9T%THMZf<@jW@I{-Jqgo9@-+MoqVlZ-_aY+W$hmtr+)W_eT+njDYkj z66d))KR<1?&v!ZMlQ)^M+pp>Bxr+}h$Iiut?26as$UZPcyk^r8lX88qyh=1XAhIab zOv^=}iLUs;OnKSFg=Z$G&K~aQJd-rWD9En(?pP;mC+jvu;o5R1Zr!@|T%4h1-0ZVTv8XpsM}4pa-=1{T;Qh}~S>Lubo;)0fV>@)MKUXo% zaSW;LxS`DdOLxFXGIP0imdn~cm+-UNoE^OM_urF`uFqfc^W|u-_34lgHIvVcJXjM; zObteo9|!$-JKQASXk!=`^6k>~r*f`BloJkhNA!QnM|H7j9nz5IfYJt`jwkD!q$3qN zTv|;z=ZCjhK00tHl=dWk`!ZW!!c$^HiwMIqGwN>D!|FHst8hO*UQg9Fp_pjs zEf@zjuRA+v?&`N8vucaV%-axy1U}Np091M_-@H*_e<>5zT1np*5b9( zSsabOvt?5&dDF(lqY6D;d?}^dEI$_uKHmLQg=Mcl>E1zHf{5j1`qen^w*K4SkNFjn zRC4`)gbvlT=oEF@E@&cOGkx51BteyT@V<4dE5n2mPTI{VEwTga#-jR>DKYoDyQu77v0c8QqRK%^?WrmseQ zHZD-4{jkvcI7QMvy@K{0pC(q_N1q4o9g%H~8PUBPvo!ERqqFhNZtYA|U ztI2LY3k#V$z6m8eMLITh_UEPssV&{Mtz`b{0xNFEi0PfBec~2=>M^~yMt6R{l@ZI{ zwaHnh5BDfC<;$bC(B^Z?Y|RUQ>8iaW`9F@-CTM<2{;mC=Y8 z4rOxLwrf8dpMOhxA6k^8kX*#L{k?b1sBzH#1y79+iyqhzI-DTY;;hGOUoYKv>Xj`2 zsd9W?szO4^RgRLBHaC}T9NG=_$6GGrJL==FQY*8z8u?LJn!Tdm|J=94WM^-o<0>`! zx5kT{MW#2GMXxqXxn|4gY*7}T?7sa~&DO`?Q`vRxu@t-8F-@9A0moE*-V%CsoSODf z@Yc6YGe*Dls~@OK3};Q-$_nnk{dKQTT5#j3{=};#QAZvTkLnE5{539K2vb%YD_DG^ zIDfU9%c;Rvks_CNj*Fk#=v+ip<%XghymrqsJMRV&t0jyiEr-cS5!3F#MGB355iS=J+} z;alX0fSNDGePTLUTdZ;O3ijJccN|bQ@?Dp#B3MKlb<(qI3+aa z$z4$2o%F5chF68S@r0TKx35#hGrn{X^pVP|F~7d@yKS~Q@c-l+jUyR+1KBHaQ<-f#)vHa13Cs#=Vc2zcQ5d} zyJ$UImHYyWQ};W!vTyTwy;ZW-X+p;_KQiK~Ts8k9R$(rMljMuJ@viT7c5}omO`=iG z>Lk3@YG1#zG9h8fyFJ5nE8cvYqVcDUVXtTJoaYS(A1O_xbtX*7opr+XjT#Y+tn>GtOb`uxIlE=qend$0ffKCekra$-f-a<)Rly8WeX;h&yd)$P7-SH7z2 z9ebB&aO^#!l}lTsgA8yX`>*}-|Bx1EnA#p18q}n8N@QN4Cq3rjHzTLuh)##)UzNrf zeg2Lt8xE}s!)GY3zU;D9w{Y*m=&ts?wptf2udn+uQL#8Umvr~&yyokk4bsx5l(WTt zvB=fBpMM8)-IlG5cth7%daQt2PSZuh#;s8}OojXg7q6>Is1)t*wQn`b_bBor!dO~cK zy~56@)f9S?|1e3ZVRzj}n%5AY^OoFv-0Fh2cFy5u&+n*?^7%K>j3Tm(br*4)Yv!1< z?%wiHYA3~gvwP~3Hs6OrylF|<_j7UcIq7P`_-QSolaf)8SGS_GOnZ~UnaVrdwdDH- z9N#F1SVGKLt|Wu32@hJuWiMIaW&LJi=lrgk@^S7!%be>MHwel& z6P>gcGfw*6F@2k#p;yxRvLr^*3#qGzIVUQ-xGZ{gtb!XS&+18>5ui(R zsN@}THU46jem1Z!*nZj8$^J$iA$?QIZH;~3t!?5N9qy<79Ny{Vt>BMTJ7~5|NknRy zzE*?qwbRSR7Imy!CZzfP?EEgi(;936X=m=OD^!er#OpHmw#E^LoIS zH*~e-T1Nu=6-EO7R90tjV9%DLZ(rdoAF#xVE^lTX{z|boQOz5#4U%dnaTUAkhsobt zCT$nnSA9C>iR`o8QvN-Gt$IBT3KuRb>*|gziV|BASw_{6ZR!{~Q+-M=P3PT9>FIAx zntQ{&5AT0iYhW3_$L^7ii?mgd_L{>xPek5YG3r6+eie4~9^>t!9G}ph=ea55i}#*J zH7zgKO4y*I+jOkNN8lvc-$*N}%XIO=RlN!G>|f!!U){oOaF(ss^yj;Jt3D)K?!~>x z%|~~*t`nAjF;X&_tJ|Nq^W%d+nR*woy*|c2YUz#i8`{2RPlUF2lL!I1a{Fy=zp*rF zXgW>2%-$Yzd)@mhmWwB|@6}7jnb~@<4 z=cD#DOM9j3#|VKeCngk37d;82FKGMt>by!t%%dLFH(O8iSm(H{nq-`oxg1OWyvkR7 zSDO0fmNVPUhsq30_a?4?xX$osDBFd>vN(&wtK&9yZIU><+mY}(^3c3r$%37Gxy@ph z8CLLW=liON-CzBAo14|}9d+;MyktWk`#o~?mfmkO8sa>=%SE*o`Qgq_hEKZ|A0TgW zHYo4>lAT`Q`YTx2=*g<+rDlxtJ=sJ0y{|6}92SgJODfa7OHUm4r76<*IS$Gc7>*cj zGY(qjm+QkVwZ5zOUVrHeNtY8FEnIJ?JSp~-+{4Khydt>iHEBQFvCl+@n z`(G*}Yqcu%e+_jtO7U!n^_*;$e{U}lTk9|>*lUrq<<)x2wgnLztgf}!-)5X%`iQ63 z!zwLf-s5#KiZ}ZBPgLn=OG+poxFV3h+sax!M18<3aH{m<<^9%)xuHBIQZH34UTxOV zdi8vuMAbg%b(r%SM;^obe9xb^?A`P+@olHn3ctnOk69;GQa5?LtXuKZF}+_+MmRRl zia_!tZ_P|vAwR!K@6Af}o1gJ#Pn$5BAK!RlUFRVs7_uRu0=IKsRA)={^GHJ*>cyX& z7XnJlh2wB`D{d7Uit3XEaZL?iZLC$Y`Sj{dh>ug@j>~6~A3RcOe&8s&SX{pWpU^-HTq7N!QJIqGi^Doo7R z=PsUl8BlrPjHpYU^Lfs`{M+3kvL6DDFOX+=Cr7!O3LxH0q!c z=jUH5J~xaFb#Kc`Q@)@5c50iqMd|e#cWds`YbuxF)_W#>;#>Ulj^awklabOICEu$CeCxQ;n(}3^Ey%XoU4`GDN}!~Z`+4kh^uXa^W#sk6sz#CUB1w;b74rq>GoRI7xP7)Zzm@7(#OIa;=SUE zDH|m%j#*8myS;g{;7*r^sMF$i?6z;?HNTi#pZ@%&TyW5!`u!`Kxavp!#l^*}9h%1b zp1r%wA-!Z#W5Op#pH;^coA%#&JGt3jeE8@~>1#LQ7;Zw+dDZ8Ctl4Ic_n*I*<7?TC z^Py)bcG}(xrZp`pRw+z>ePd>^V=wsf{k_^*kCPtliD>{`UmD2XgC_*v&PEaBm= z(HUoSdV=5Zny;&pdq`$$@r@M`7p#=IA&a#@{DjU#KJV9;me0$E>_u0dwv0>4On0|= znfFoZgwM`PjHstO&ewl`bD`rIm)OA_jw)?8IOzqWS_Wd$Qd1FKXH2*}cU4=an;qon ztDShuop2>;XwQe&E>%SzyGViBxnWVRQ^~jb553UdZ$f-R8>OA!k!bXSE_p9nN2-l; zShsAx{aRDw8#nYfl*Zp%EkKt2xvy_$TxnHdA@?3#_R)D6jAFx@!;BD|QqqmV$e$t` zRa|co4-AS{M2FTT-yJ#ErBPV1$u4qW`EdX6=8#7_f^6QGDfqGLx6gkg{^m?hlHyJ0 ztfDg|uO8bA=p3$)v@KW~T*o6;Fkx<%5;Y*FadiF0h`60wHhBz9K8ckzwtJCIF)-Nk zs;KdH;@RpczIBG`42QkPEFDG$Y6dJ`z2iGfeuD%ZyP4`i*PN_T> zYQ8@Z@nCPaOTk5+XM46=i&?dpMj7%fu_)rhi?Y7(*sEbD(D^<+L*ogXOO!{&?Xl;_ z)i!Fg6qjyn)GN#{A8y$3I6iNl$WzAdn*BoDHSM?V@5o(l{vcB23qx~Tlv05Pg?D2+<`bDw)t$U}tgFg=GTxVnoY(5yz@TA%c^4As)yi09Q zu&ft2*-owZcCc9~zFzZKboTE1CN4HnUvAw$JW;wt`A!^*bzfb0_s{5cl^THOEq9&X+1U^(YJP}iead^{<+wdQMSCb<2y~e9G~%@Rj=LoBu_$ayJOawy(gzu zaC~as{khm=t8AZIcE-KQ$E>-Ys>xgB%h}JrUvbYfZz(&!zl^8)kw-nnRN1TVOxG9( z?vJx<#hXVw(s0_X-f?R2FPX5fKh8&JI(A>|dv1JOsziI_egF?e^Ud^&jzR`*8QCQ^ zziVm@PfU45{Ap*^$G+*kmO{G%H0EvQ5NaGb^SL{4+WiCDI%4TjzsFs{(q>|yu5L`**VVCYLE`C|E zO$*CzjMwcQ&n~g;jOx#-GC8oj$M(=Q{Vyq-x(s%Umn*)cu9w$XG`zf8fSU2(-Wo>w zlJ_bBCrnl^@Tn1;8rpNw(PhB=Eqq0n`<-7($j!5TG6#13vJ)*xyQnBwpF6m*#V_`e ze6Z5nGdZu!5A@}DPKjzxt>b@lu1@<=z{`wZL7m^87xHNvZ!82(& zt)`(jxA}`Da?D*g82w)H+3NiryVCJPExQ;weAmwo*IzW(o7#|}G0-Qo>pgAbuS@!Z zfol#`lP6OOgZK2!HfPnnJ8#Xa zJ$zp+<7BA4)$M~3W6ASEUtR3eJ;d2?uwh_Jmu1qcI5XTi_pfdW-4z=3Mh}`6O-)AI zF4z1>Jh9p`yQMR2?dyJzyHD0h?LPM8{t3RV(l zfA2nQ`*Eox4@2mJbvtePK*a`?O@&=edsdA*-P}zp;w`cB%p5UdkWSUvwizfdU%d0d zu3Aa==&9N)pG$9(W6u`fQz;*}m5yH_B$R7sqrfJAGA!wA{BY~t^EU5ehnfyQdf7F` z)xY*kroOV*$9bEiT4*-5KMpVdet$*b`<*Y9TYj|utQdXHs>N{Km{^zWY45X1JYMAS z-uP%KOUidC@$TF$@wU6gJ~?C_;O$xOAsQGusJH)m-gbpggxZ~ItbEf3m%k7R28|n4 zqr9g_q=)52UUB-g2}$Byy}}YQuc|y)c&CNS2G43N`}W+Vul+IAPK{^53?aFuTDJ#L z))oCr9~2#_`u;uFi&1Tut0~=Wpf1|AbFPYwdM#K>{Pwm; zIr;9Xg~Dl_&L$QU8^tdiPU~+}=*(S`^;jb!%8@#>#lNmwX_r)v+6oKRkcq(Fa6Px5 z>1&%j4q6w8KMRk&C0`S*{*APL<7{5M?avArK7BKleB6 z>U3$_e6w-HJ)fWZbJWk0Pls2jaedU%EZcFFp4~rwG;>{_yXz@OsYEK5V}O@`nQoru zEorgEPKx$=yUH$k2xw0;x~n{6URj8&*>*l?c+tI!pWcU<#IaWk)b4byI$hfF)b1H& zVrj?G{H@#E=TDmy?@?H~`<7Qyxe9TexYzwqR?LrI zN=#_DDrf!GU$KwzbKB}lhY{)V?Zgv4QAa}7U!Dvub6;E>F;3c}o%AKNWcvWG;sM9= zMptg9XAfRo_+>|cfSKR63taNYB@O? z=aF;Ob*p^>$LFQZ-!gSrrReww^ZX>?O!WP6Z!_7Z*)^G+LbJQL*FUgFHE;_fNbpBOg z+fI7h5v5;e6TXhwm8mHjG@q@jO;=0i&|< zNh*AfEum`QOJQZW@yN7Af{a?g=#)ku>5*o>|A3#At&?0(3Fm%Mf})Yil7sI#L{(){ zu4(#|2fW|Hdgfd4>H3Je`3qcLta%t5NPl)HrU7?(&&HZPey0k&EmeK&Zs+`J;8Pcp zTXOcqq|1+O>z?kb_HK&`79WTV&MA9q&+s3Zcx->EK5Yx67$o#vU#`4KpWmu>G_Nke ziuFoJ)}t{w<&_(pMWb?7_O2FLcA#!>-UVB^HxH|n>&NS}Ss$D$^0+i~lyvqHMNB1W z=iUvAa54SbKV$^LI+cpAKOfDIZ`R^mCY*8m9lj}nI9Pm$*m+TYTH`c9JxleCaI%vo z)ZbL>p`Wc@tm|#oOEEZDcFOdP2JZN^xWK~RCl!+g&Lm!M@7lc2HA8`A{fmSZ+aBE0 z*d4aaa(vH(7bRtF${YLo%Mz|UMv=?6boFbs^7M-zlrdv7bJw}B{M-KVcipNV;&n$2 z^5`d~$j&URif%t2b@J$ZYO-6swnjvYmYl?p>mC^MHq}`7Knj;5dQ0_FyYo}WoW-U6 ztP{tZG-ID@W^MVz{cn84EAD_%N2qRmqiX!5Oe5#0tilTW*rl7~_MP(D{OCBV z)_8rnt7J?22MLjR>QvLF$V$zQvA76*n=JXs7a3W8irddSC_c^Gt-LyK8~eJVh0Ame zYCkeKCaju<`42=*{dAb9-M%D0TH@w5^9#3f*c|uAo+FNz70GOg9rL-jrY&J#&xB-F<{Z!C(p)x zHO@?VyplciDrFxr)bE(lwPdj_@dHt62N+GSLr3O~2A}gk)+?)H<+y#z2P~0@3vr|fdXVHu6ZR_rZ zyKnrKo#3Q7))LnB;^~h3<91v9%;gekAsQD~CmC((W$Vw_kqO_Oto<3qEBy9y>iU5K zdj1ZFvfR&K8Qk5HUzg5{kN7Fcx7$Hb_~qJ^I~q0z7r*Lt=VoveDFiM|H{R-4wkMGF zpj9oKn-;sdS(VnrYI=Ip1CFbkd6w_w;o`*+_o=)vEV)}x5+Y62K7O)l+0M)}N*_EN zq;lo^^j6vdkaXIDzYqFxU6DDz*x$+9L=kWmwVSa9%zh`=LP z`x`f9EFDOAs<(c}k)FQZz&Li@cOJ%dLAQBNeMz|>k+IzOPVmY{HThyK(>?FkKaU^G zr1hw^?POuG{>HxXNH(vhg6jTSY@w z<=3>@DTGzk-r*>daeilX`HTGSq7hs<)Ld!vZd%bfn}^0LPxh?kb}=Nggzotz!szz9m~lh>blQ$ezo(aM z)3sim5xb`_QMCQKn{bgXi?#5hX8W9OAFq?s9nnUVLtFE7x9hPjD1I9!JW6RkEOunq zol}owEBRlyG=!gVHvhneZ@#|yP6{I^RsDF>y?YXyM!IkBY(9Hrx3gV}E9c2efRg3zVt{j4U2lQ@QKU{i>CQ* zAD)ljePqdSxnQeFFAMlMxmnlqXqNYn9=_=SNyDEfCU2@=HN0h+9-8`bB|g-=eA#!) zAePmnwi9`A>m%!5SF5>ri#_?;zxtE9PUU*KZdibI^l+%{l$E}=SLDmaJNz=@hvj~3 zk7k%XAD6nxCl#yv>~hEc@XC?llZNvShdhfR*M7URB;L0^WI#xE<$gA+vZ3v)_R=>d z@lsvIC%@;3RCy*V3T4Y@!Ky3Xy?V$3fp=H&Fe zY)~{LxayF!?$qb2uQpfQi2K58AITjfFH8O|zL>G>z6cxlMbYOK6TM5b%R&=|rGM^| zGFcuk)po{3I%Vg$a$an{&EUoGd^fos_0IL;1|6!08reg7-zFWRV zJ^p0Pg84h`t+x?9(pJ@#^)$;iJl5#kP)7EDr{61L`AYUW<+=6l*q7pql8U#rTW4At zol{igzQa%u{@Ai)zr;zuTjLAHZa+x#bI@@0+ng{TKXK~K%T4&0+@0?(zCE^pcGWie z=(``6KWW<7w|-9F_%uPFV#gX9)q;hQvD#x-_!y&p_wf^5twRbczqA!zDeA)CE_gk` z%b~^R`{Hm#SNN!kXv0PCvC-nw***il+q#JlmK7}bmGNWT(*6{-thgmnw7*KdaNJzn zNvhB3Ld(WXv3*t{l{lMhf=$hhR>OjThe-=}Y!G=KS?zhyNWnKPx7mARAa7&9K%#Wk zcg@4P-3yk+sXpJr_Oe_4edwBfoN^Ch5Basb8(DLOxahi{5-mI?A;v#CwUX06{NrG0 z>&wM!ZSjFIlJ^+pB*}N8_MywOX*InY8g^)v^ip@n2Im&tTys*yO8tuavYbfygBg~O zU2?y4_C)rTD1B9H@XWM1YB|+D%)7|F?qc;jmmkTJMpe%0i+wze{?pyZGsutqk4=@}u-Ihz=HF+j)edj^G zm2(LT;qhJm)B29RiQjgGR^{GFKS0{^>fOK^R)?-c`l4{>b^eVS_$}4?jl!1$TE7xs z1V-F+Xp*?7?8cbfn4sUh(DvPBt!1ZD57Zq%SUaFjlfRK}WwWD`=mohcI6G9#7lFI!eXyh>V7k ztjx^7D^}boCyvD>&~q*PrgJIL`N`j-KM)M~HRbu9#Bs>RQ12hsjTCUE#(!V(FjGh} zVdY0UVH?Mmc{bVj1i2QcPg=74H4(eYHu(4MP44hXp`Yowd!A*L4cX z`l0^S=C7s}a`Lj49NS>=nKA63>YFbbv(?(OL|&NWE_Ro9eRgMq+U_SNch1NZq=(dTwa$F9miwQzi?ugY`l7txzbdgua;uS zrJQ_@^u+9D)z^&8o5)PoAaF9oMhyjaBLdS5vCLddoD*NimB4@Bp0 z56hlYHsy8bMR0X3UfAWZzxqRKw8~Urt%`(dbW_>SdF?F1hj`nAhId?ElfK}w&}5(e zN<-SvPVHnZ@61Aul|*Oy*ZbekgdFmE5t&&P5p{K&@`Y^Sim*$Ycv=_HT2!7AW4Ii= zx~0WA^8Es&ua#@)xasb@9H}%_%b=ekorqkv&3=#0fvE;*9YXChL5JJj9lM1>3J#=5 z3*UAe;FZ$WkfP89W7W4GXYP-%XoOjL4 z(#5GwIhDuEe7)8E$(3RZg)dL7wUlsQk8xJ#bV}TG(eG@~lxumRU{rSX!ZIHs!+|$j z2e)8zbOO0gCEBxD$98- zmXn)rwx3+EWG)#dj+{16r#@nOiBU!~{innl(; z$7;6Ask~TOadsVX)xc$4zRMeS9wY49$+c;(xwl*P1GYQrRS_RDPBrI%Y!Ho#$e zmT_X>gV%yauJ>*)OvZMVttwCXlrs4}>{NHlkzJ{}jy2z-Uy~!tt?FG9+m9Q3Om+79 z^-&?Y`$FKng1EkGt^N52@do{TS-l^$LznKAuxyA)t@K+nSozgPkM&vmRLtJEJvG|i zKTBH5BoDt|WVd-Bdq+(>{c1h8HtWk(&*!gWeG%g=soJ-J<-uzFpJL@xZ#$nG z7GXDk<*gvII7@?m(&?U*CtFfUIwroABAXm6?0*W4-DTw-9qs1}^lH{1J1gru+6Oee zJg}inouTP(ByUU|J1X$JD*D%Yv4r#KwnWtixAF*ltZQC=$>e%RL7URsmG?iry2jG> zQtySXNg(G|0+rpPF;*hg-y$UOwxGGd;GQ+=k7FO5zG^$#dG_s-jGXCOuN7W=&o~Qu z6;3X&aMbxRaw}cUo)C9^jlo)>jW^3yTvM)3;tD>%$%r>QzAhx8Msl=rM`HJFf>bPF>z!r&ovD0Bw_KSj&3EC#U2I+nccoIhTT7@V;T?9EwLRk=seH;}^FRd@HbkN54OO7Y&- zPy0#)r{6vr>@shqzZd_&vipq0?Q{b#lXL5o^#|ez#kJ@5GajbDP?=(nbLaoj;4l1k zoXwi;;gcA~%7tm{_jwbGBt(tx@(IYTA0UnOHfeCb;&F*(Q_a+Scdc4)cdXuXLt=Px zm~Ce65=oooZS!|TNwAeDcAojPPWcy(aw7Lg$Z*oLPg$Yo*sA5u$)C^UTc2D1EA=av ze|L~sy9 zEtl{2H>ZRJ>7P4%E>DZA?4n3+y{nU~c^S#$TkE;?t;wNERr>-b)z>|+{kd$JjGS|H zrjN0}d#hvBvi7zXb`uZVlc|Z{L~R@d7UsSXx5lM3kIh>!{_+I_{Lh*j8J@Y>H{+Ha z$ds>UHEU$0@$(Ko`%vX8Vv|>6?CrFvCj8vcJW=&kj^|{t%Y) z&}2!=wk>`;qn7np)ex@1!i&MA9R&$-C*q2VarG-8% zT(bY(wtWhZzD(+0wYb#&eV2R$Zd@lW$XZV7;g-k24$I4~Y*L|JmuPU5oZ#fWBv!MF zC*++^hZxSWC@9*eziL}`6Ib!kNbByyg-i1$kA2Np8#LS(a|FkJ(My0aqIpBzIi&N9 ziqOKvir1b>#NPV8k59j%<4P<0*-vGgO1zujGP<&Slee45ek<84ZYopFEqm6dFG}rE z^zgx^N|)jDa$Np-`gzM6?fiVwqpqIAk<)4(@I+l^3lq8|XPo@d%Z z((Uc8_a_JH*8cd)Kd;p{?V-}@cL@Qti~adVGIys{FZ2zv*eog{{wDUZz;GPjwU2st zSA|7~rBEI{c(^Z9W1GfudA)w&J0FNC+@Vgb&z3HwHX4q}Z}#DG(2}c937=pc$ z0%n3uPg+(i6jb8eaxA|)m2)t*$nD5NgJnC0+qf;S4jcECgl>08x`fj`&Q{5v5$`=z z%68w9bBIgi7lWmml{9HrI5G9eQ-8HdrhQebMXTEWtApEiOH_V|v{uY`Yh0hx?!tI? zY=NDW8V5C1(>2FfrGNhM!h|=SRo8I5IkxYYKfJ=@vLsd~j$e60MV9?hIljDBWsYO< zi<(x+oBJS{6uhQ{@7%~lc*%=BP*7xIz4UJhj?!i7eZ01TS7hXOr*`~ryJA1zP#(lG8_#b!MC2xFt75B2~ z$y3iyzs7Rxzx!$h#B;j!Zy&tA(RJ%|Vb%t!i?OA>@TLc8&gx?_-GQQa1mDKLxT&ph zU2Rl_u|M*Kw~ztNasr7E+`rucBs`un7T)rlSe-vNdEA)0{Po3CXS;bcu+(m+a zq^PMsm}(}aKDCx!<8i#n?Ly1q&j(XwPuU(ePG`N{%r>@5zT^tSvi~R7HG<|mO+7gS zm;E*8WyXw=W$l-!=%3gm#6g2P0>nX;!Al{<$~HjavvOd|KLU+>&{^K4mhv0GiP zvvYo@U#xa|va-=)RA+D9mGz>+hd$O2=^{(Z5>4)R?~4tH%sJkH+k9De9~W7z{ur-hmx5!&?Lv1aHAMpXQ$z zH@f>T`xGBy69f`RdCAqm6m#lKkJ0T zLecVP4?|9Sy!S78Nd9CX5d3sS@7@MpcJ+*gsCav(Zlq~}zcTj>QM_okHL z?F$4_=ycX~3%6;j?bxE1vY*a+xll-nHHf@Gl1eU2a$~h*|NUFxgfFWv3%q|;=;6;Q z#yy`%EsP6gEn-blvfTYK9}%Bd?6aCidl zZ&i_%=`#nh{yg&rVvuD&iqJ#7b-A4;e(ecKbb$$sqkzC=0_rpl(PL3{7CtaA7Q;I z8J}3GB6J*{3{PcX`Vw%Il>Sewv}I)Gs}0y+@px*A%4g=Z@Y#Fpk2nG?CHgaTrIPT- zuOvE=p3=trl}@H2D1=7`a48CX@GBliLr_7Y!iPE!&HRdIp7z`&!#e@Elp5x*WHO2= z5}86wS@JiN#= z3;l5ZI6RGr6{rCFkHyev=p>-mklg{hBN(KEUY|2D%u5G#!9ak_XK-e(kl7H>fWT;U z>?8yb)>xSWHU%Ov!N~YaAB^9I1&#p18tqKQswrqkM<)TA!5$p}4jC&e2zWA9R5L(N zqGtzkkojO1^Y5>aBETP3Is$i6k%%tmY!;*;1re4>mYr zr{aNwusZ=5LLYe0tC+>$@f0xJXH5cl0~nQ#U>Z-5#X34Xmi5Yj=0pdgZn3@QRy64*G%^hCmp zSY)2*ziq*DF32Pxi_ifffP`HPXab}i2?x*1Fe!Z293;YQwLQbrAYV`qicBISltCs@ z5Py?Q0_O&q1avtTMrJ;lGj}m08Uqh+?O=d_Riq&>2o{AT3W%M#eSxaLwVw+EBY=(w z1QM0`AS=uZ`~Qo603xc2L`5QW5T^n620IBA)iw~%!3qgxjAu^hVFv#Y|H2v(&=5>+ zWD+!Z2Jt>bm;($k!$?%n1ju+a1~$S76Vs5h0~L-$=twjiq9Xx@HO)X6lm2+(e=!Xz z_qS%5B~!`p)-P5(foeujO{QQyY%nk(^oAukP|XOJP;ksAerM4e6aN&jda%R=S`%x- zK|AnxW_OoS5d9~4Vm6tJM@pqhy-c$jN0Q3L+r-RRj?-pt`pNN7M4 zk_(7HqL5MV9IS6d&4E-vh!9*#A^{s5p@2h*6+U36Ax;PdfCw#sFOBpCL4#n13gMRD zH1jt&!W4Q4Ex;QN7zu}?03V~1&=Jdn0uCwCmxe_57!WQ*LW2N9%@#5Z{BjJXgN8tY zBTSneOTdt`K&({=Ap&j9$iIIg7~(33tR_<^{~;GB|1lsHITA9U0ZW7c`-j0l!4Y_K z93eu0A-oNa0fK7C|6o-wM0L@KAGAYEX9j3@L|6a}aTXy}fe0xw82rfYASi;R56~Lu z(NQT(PlL*2w|{b(idu+p!iXnKrlyp!gYiVAAwrT&r6YO^V93Vd33xAPztC` zNCT@4NRdfA|JDwU2|{-?c(Vjcvov@(8-*dkKnPkPx)ETrkvl`Y;A{VvyAPp|xsyPC z2T2s-;1Ce9qtO9{bNk}J;+W%#F;9(3(1&Oz(hyDNP?^y?q#Xz_1eP+qglQ7f5$gf+ zWJrvcN`yDru|t3mLxv@yx|s^{09g{m8JLGP=Tw2E5gQw*9`W|6;M^bsf(47E2r6V( z(RMUu!k+oZq^AFgB!~r~I{`dm5l(>=z#n1$C(un{MsfZPI5RRCUiQKADg_>}!ICG1 z#z4^zQ31qw14|sCPkr+1k$09 zutExKD{y4zA_HJZCLdUVhzLC@`9Dq-Gz1orpeJWYaW3glK|IZ!7_3t&R#ZdC5{(^F z$#eq3gJ4i%H8j}Nv(-1*)2uVqLBa}0|v8u&Jti6IdA+ozqyzYxJg>>r5PAl@b@S*#P! zfC14k1MC-(sWeFJVHtz=AGv*IIs{oX0gQvW*n+JA9wec73I6_`C+rtFPa5PFpfZS; zO=dn+2zm3etpi$aKznHQNSbo;3IZP-}zj3{e0SMn!}i9r9DyG0w@b|*l=2ns<6qwT=BLHZ&`3~6B8Zw&qm`T-CMf97@u7{WTt95U7*0~qi< z(ih5Cu`oy>%pulf5jIu^q!2JN2=ph^Fd>~G`i8(jug--*gdY{A;PxUijS4^}N6e7{ zG^j zn8N!RGUXthFr*74 z01Lrx0X#{h9mG{JX8|d8q?7<)c&wWau>WO_W*;s9ArpL0u=*OkvwW zbs$2epfP66F>|=k`JXlUTPp$#LJ7!#h`j(D1IK}B2N0~9V{#T&%>j%7ksPEm66J-4 zNF@gzfCvLacx^5NGYcxfibduCQ)7nFVgG;Z0B8s?KITTJ{zLo!y*0u1p<0fzWtusIx-fdPhuJphI{$V|jA5V;8DTUbXC8iH$q z#SA2Rv5d}4vd`Y#%;q2=hb2O&>iHd%oh9J$%&Z!A63C@uSrPnbtWC%)cbQGq|2rn2 zX=E{EFi~dD0r&?pLbKvf7=zgO%$h3fVt}Zz5q}_bB$@;;q@EXGR5Am*W3c*BSqWJM z>`oxKj8HnjuvJ2^xw)ko%p(EVAF-(Ym-<0`%%RMgvxA5_cE{kkV_joFKj_jFEeW<& z3<#ScS`|Vrh@505`(_^mlMSGZ5i9EOV2)zP1EqsCoS1Q<8AZ$Fr@vc**xGDk_J33X zF@1!|L8)TT0SaPKk_QtN?F*#$ZzIh4nMKqTY`6}D0R$TUHJn)t)URUmKv159)VYFi z!66%g1K9sx^aBuU z`a?s+5C#|$R%5~t$^)T>=w*P-VSFb3@lg1J1Xdt}iZyzn9a8KAFp%0<3_^t;mj9p` zwn7Q|k{H-p8YU2%fC3nj9|jmwY|Vrr1{MKAVhA09viKhX&yuH5TZVP-U_exX0}Qb+ z00*;8!2b~|6sKUh1PY_(sy)CzP&!h1#Drn}RDeMh3l`OohQZ1O2zsEj07-XrF=Pmd zBLjjTh`^|b0tXBtMjD7Cl$#*jf)!G5nt#~+Z!8paI^qBUY>s#RKeR&f5ZMWIMc5eR z?tj2AF);?9p9~kyusepb0EDU`(1TzGq$qME6u6XtjE7vv!4p6@lCiN+03s?0+-UUd zC`eET1|*{d400ab$iKkspI9h#Mr!AnFl;^oU^JAEAv=Pw7@QK;1R_9~9dmTxEJ8sj za!wH1LXHF?y~s`=nv5I?gusv^fn*nQB%paom@GLg2DCc%?0~k=oj`2`(vFHsObCpl z8=?J^n7^~+V1a^>ffQ zU>2ogF#|Acuouj0$TlGxfm#g|#$5D_{{O21i4dViCxO~$r1Rg4aR2&(V}(otHR%Xu zm}dOn@fb5Vb3x;y#sOTWLWq#abQS(~{?iw^@d@K0xfFnbA&%|K0OR1_YW@s}21cOP z2*m=}23XF4Y%=1ZFf+`^k>JskFw^e&W9R-uD}<<#Ng&&RWiilUh>n0X47y_o{Lebh zne)dJAsK*9@*l(n(N?q_Qj!PbA;~*{L2UyT{Uinw4u*yhp2If$5AOlIWc293d%(&H z$O)lG$Eh;|^hh9|i*96YqK=7w=!|3o0EYSk07FzS zGw_Za38YE>1BOw(FfRqiK!pV;EUcUde+W^%%*y}>5km1JvSSL84TOoIes|`GXW4%M zL{u-t+z{0ZMJ`Buga}3c$hlL%b;8mSaOWJ%0RF+XK&oDuFvOB2LY)I5E1*OeodnI3 z5+Oe}i|uACDS%P1Rgy6Ap90cZgh_*#Ke7|3<3M1LDMev_Y`uSk4mVtWv*JJd52|-j zMf4v*I#5@rpn+@>B3hwP48ayNOfhGHVE-{M;UK7?lTZpq@7q9M)G>iOIHOBWgP22=K$KAb zhRx7HM*_lzaHRp8dWODe=n`Pqs}Il)3QA!UOd<4_I3QV!P7IbPxYIKMWF~#s*m+NHPTW+pUBB&+3fa=!Hq3+7Iar888G!$6jy*I|!+rV8Z4cClmk7 zUQHN08yl2f|LwFVkRA4W=I=E1;qe?F*9Ye|`TcAuys4 zj~8n45RVs3M08@%56F%oQG`y6&0c^KBEgYh)hS%ZL_A)AAs#QYo)X~*&<_Z~fquZk zz^+A=5CD;LCo?$|gKCI%BIgb;_JrhtR{cE~Zo*1$uW z(Leu0Fw=)X&;|J@WG5gnvFu64gXF^Q7^cS37C7_&;){QR5OA>(F*KOB{;=!>Fhmi7 zlY{68fFb?@ECtCYFyQMI*n$~6z_5iA00Vh}-5rF5kllgi#c~Am?jeG$|J}!&!T(T4S@diz`#T5$A6!DR763z1(r^xNjj07G{SKy=Z_J#DD2K)wJ1^D?N2W@BE@ zL#P_ARUu~#Mfb>#DgQx7kVZoKLa=j&7GVGX&<}zT84yDF$nK!730WY}B{B(GFavi2 z=hnnB@elDWaOg2?!u;$3mUTeABlH1fQi$ycH}R2Ug4z{?bD+it`HmITpTJ!v%wpi4 z_H3e=;deR^ForPUvv?Tu3REofnhCZYDnY$6lcw$QM0sqV-2=*Qf*jtF+1{iV`52%`qajTgrT_isQFys>$%x@ynvEQ)* z`361*X4UYO6>PK<5^;#sVyhh+c}G2;2_jL_wy-0T>yjIq;ncFVgGZPXGu(eA*C;n5Zoq=dL9QSG4Ee?oGZ%ri0{{kJPW!#NKlUHwB9H_#z>pv^z>p*Zz-ZV2 zBRKEy89gipnJ)8O7$iZU^cs5$K*-Gh<%K%dChTmUxrBRNd`0}w*J*oo0nPG))w>k|VE(f$CVVna~? z1E&}}2Qw0ltQr=GoD&oZA(#O(0T~eeycH3=7OcApus>qxpArTHBH2J@4h`#2GZBpt zCb&FU^90gr$lVlxVQPE<{{RH+U{M3t4lt$zv;$d!w1dmi2n>lFLtjJ*1B>ACuzx1K z{UbOaR;&{R4Uuv+fFV_00D}U4WIW`%R^WI1sa(hXt*iqel=fgdLwFW@#^AIdQjb|y zN=oU}U{kjOO-|fGQX^=nk%;O9qMC*}SskxQ-U69fFcP-VHcG1ezfCM8H*Vzg^0xN$ W_V=`R;Dn`t>BPBuwT7N1=l=l}IGDl! delta 52850 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 KN=jW%gZF=7{)PSk diff --git a/docs/manual/manual.pdf b/docs/manual/manual.pdf index c4d2f2bfc409b166fbc2822f02d36bc7ce8e3528..56aefab32b03a105ca26cfe00d5585e24dd37ae0 100644 GIT binary patch delta 56300 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 F`9FXjAZ!2t delta 55533 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 diff --git a/docs/manual/options.pdf b/docs/manual/options.pdf index 901be6b544ab6b1c1c7fb9d69f547e4c26e475c7..5f0afc3341f68b26f6dd1c52a22c968f605a09d9 100644 GIT binary patch delta 39246 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 let (body,_) = get_before body [] in (Ast.rewrap s (Ast.Define(header,body)), [Ast.Other s]) + | Ast.AsStmt(stmt,asstmt) -> + let (stmt,_) = get_before_e stmt [] in + let (asstmt,_) = get_before_e asstmt [] in + (Ast.rewrap s (Ast.AsStmt(stmt,asstmt)),[Ast.Other s]) | Ast.IfThen(ifheader,branch,aft) -> let (br,_) = get_before_e branch [] in (Ast.rewrap s (Ast.IfThen(ifheader,br,aft)), [Ast.Other s]) @@ -798,6 +804,10 @@ and get_after_e s a = | Ast.Define(header,body) -> let (body,_) = get_after body a in (Ast.rewrap s (Ast.Define(header,body)), [Ast.Other s]) + | Ast.AsStmt(stmt,asstmt) -> + let (stmt,_) = get_after_e stmt [] in + let (asstmt,_) = get_after_e asstmt [] in + (Ast.rewrap s (Ast.AsStmt(stmt,asstmt)),[Ast.Other s]) | Ast.IfThen(ifheader,branch,aft) -> let (br,_) = get_after_e branch a in (Ast.rewrap s (Ast.IfThen(ifheader,br,aft)),[Ast.Other s]) @@ -2386,6 +2396,12 @@ and statement stmt top after quantified minus_quantified (Common.union_set mbfvs minus_quantified) None llabel slabel true guard in quantify guard bfvs (make_seq [define_header; body_code]) + | Ast.AsStmt(stmt,asstmt) -> + ctl_and + (statement stmt top after quantified minus_quantified + label llabel slabel guard) + (statement asstmt top after quantified minus_quantified + label llabel slabel guard) | Ast.OptStm(stm) -> failwith "OptStm should have been compiled away\n" | Ast.UniqueStm(stm) -> failwith "arities not yet supported" diff --git a/engine/asttoctl2.mli b/engine/asttoctl2.mli index 4a71f6a..56c353b 100644 --- a/engine/asttoctl2.mli +++ b/engine/asttoctl2.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/engine/asttomember.ml b/engine/asttomember.ml index f65a100..739b4b7 100644 --- a/engine/asttomember.ml +++ b/engine/asttomember.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -105,9 +107,12 @@ let print_info = function (* --------------------------------------------------------------------- *) -(* drop all distinguishing information from a term *) -let strip = - let do_nothing r k e = Ast.make_term (Ast.unwrap (k e)) in +(* drop all distinguishing information from a term except inherited + variables, which are used to improve efficiency of matching process *) +let strip x = + let do_nothing r k e = + let inh = Ast.get_inherited e in + Ast.make_inherited_term (Ast.unwrap (k e)) inh in let do_absolutely_nothing r k e = k e in let mcode m = Ast.make_mcode(Ast.unwrap_mcode m) in let rule_elem r k re = @@ -126,7 +131,7 @@ let strip = do_nothing do_nothing do_nothing do_nothing do_nothing do_nothing do_nothing rule_elem do_nothing do_nothing do_nothing do_absolutely_nothing in - recursor.V.rebuilder_rule_elem + recursor.V.rebuilder_rule_elem x (* --------------------------------------------------------------------- *) @@ -156,9 +161,22 @@ let conj_wrapped x l = conj [List.map (function x -> (1,strip x)) x] l (* --------------------------------------------------------------------- *) (* the main translation loop *) -let rule_elem re = +let rec rule_elem re = match Ast.unwrap re with - Ast.DisjRuleElem(res) -> [[(List.length res,strip re)]] + Ast.DisjRuleElem(res) -> + (* why was the following done? ors have to be kept together for + efficiency, so they are considered at once and not individually + anded with everything else *) + let re = + let all_inhs = List.map Ast.get_inherited res in + let inhs = + List.fold_left + (function prev -> + function inh -> + Common.inter_set inh prev) + (List.hd all_inhs) (List.tl all_inhs) in + Ast.make_inherited_term (Ast.unwrap re) inhs in + [[(List.length res,strip re)]] | _ -> [[(1,strip re)]] let conj_one testfn x l = @@ -241,6 +259,11 @@ and statement testfn mcode tail stmt : 'a list list = | Ast.Define(header,body) -> conj_one testfn header (statement_list testfn mcode tail body) + | Ast.AsStmt(stm,asstm) -> + conj + (statement testfn mcode tail stm) + (statement testfn mcode tail asstm) + | Ast.OptStm(stm) -> [] | Ast.UniqueStm(stm) -> statement testfn mcode tail stm diff --git a/engine/asttomember.mli b/engine/asttomember.mli index 4ceb553..0683f90 100644 --- a/engine/asttomember.mli +++ b/engine/asttomember.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/engine/c_vs_c.ml b/engine/c_vs_c.ml index a38b037..e82e717 100644 --- a/engine/c_vs_c.ml +++ b/engine/c_vs_c.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -218,7 +220,9 @@ and typeC tya tyb = | StructUnion (sua, saopt, sta), StructUnion (sub, sbopt, stb) -> (sua =*= sub && saopt =*= sbopt && List.length sta =|= List.length stb) >&&> - Common.zip sta stb +> List.fold_left + (function tin -> + (* zip is only safe if the above succeeds *) + (Common.zip sta stb +> List.fold_left (fun acc ((fielda), (fieldb)) -> acc >>= (fun xs -> match fielda, fieldb with @@ -230,8 +234,9 @@ and typeC tya tyb = DeclarationField (FieldDeclList (fb, iiptb)) -> let iipt = iipta in (* TODO ?*) (List.length fa =|= List.length fb) >&&> - - Common.zip fa fb +> List.fold_left + (function tin -> + (* only executable if the length is correct *) + (Common.zip fa fb +> List.fold_left (fun acc2 ((fielda,iia),(fieldb,iib))-> let iix = iia in acc2 >>= (fun xs -> @@ -253,7 +258,7 @@ and typeC tya tyb = ) | _,_ -> fail ) - ) (return []) + ) (return [])) tin) >>= (fun fx -> return (((DeclarationField (FieldDeclList (List.rev fx,iipt))))::xs) @@ -265,7 +270,7 @@ and typeC tya tyb = ) (return []) >>= (fun stx -> return (StructUnion (sua, saopt, List.rev stx), iix) - ) + )) tin) diff --git a/engine/c_vs_c.mli b/engine/c_vs_c.mli index 63d887d..84151cf 100644 --- a/engine/c_vs_c.mli +++ b/engine/c_vs_c.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/engine/check_exhaustive_pattern.ml b/engine/check_exhaustive_pattern.ml index 469f2cc..260397d 100644 --- a/engine/check_exhaustive_pattern.ml +++ b/engine/check_exhaustive_pattern.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -76,18 +78,21 @@ let dumb_astcocci_decl = function | A.Init (stg, typa, sa, _, expa, _) -> () | A.TyDecl (typa, _) -> () | A.MacroDecl(fn, _, eas, _, _) -> () + | A.MacroDeclInit(fn, _, eas, _, _, _, _) -> () | A.Ddots(dots,whencode) -> () | A.MetaDecl _ -> () | A.MetaField _ -> () | A.MetaFieldList _ -> () + | A.AsDecl _ -> () | A.Typedef(d,ty1,ty2,pv) -> () | A.DisjDecl xs -> () | A.OptDecl _ | A.UniqueDecl _ -> () -let dumb_astcocci_initialiser = function +let dumb_astcocci_initialiser = function (* seems same as the above *) A.Init(stg,ty,id,eq,ini,sem) -> () | A.UnInit(stg,ty,id,sem) -> () | A.MacroDecl(fn, _, eas, _, _) -> () + | A.MacroDeclInit(fn, _, eas, _, _, _, _) -> () | A.TyDecl(ty,sem) -> () | A.Typedef(d,ty1,ty2,pv) -> () | A.DisjDecl(decls) -> () @@ -95,11 +100,13 @@ let dumb_astcocci_initialiser = function | A.MetaDecl(name,_,_) -> () | A.MetaField(name,_,_) -> () | A.MetaFieldList(name,_,_,_) -> () + | A.AsDecl(_,_) -> () | A.OptDecl(decl) -> () | A.UniqueDecl(decl) -> () let dumb_astcocci_expr = function | A.MetaExpr (ida,_,_, opttypa, _, _) -> () + | A.AsExpr (_,_) -> () | A.Edots (_,_) -> () | A.MetaErr _ -> () | A.Ident ida -> () @@ -109,6 +116,7 @@ let dumb_astcocci_expr = function | A.Constant (A.Float sa,_,_,_) -> () | A.FunCall (ea1, _, eas, _) -> () | A.Assignment (ea1, opa, ea2, _) -> () + | A.Sequence (ea1, opa, ea2) -> () | A.CondExpr (ea1,_,ea2opt,_,ea3) -> () | A.Postfix (ea, opa) -> () | A.Infix (ea, opa) -> () @@ -134,7 +142,8 @@ let dumb_astcocci_expr = function | A.OptExp _ -> () let dumb_astcocci_fulltype = function - A.Type(cv,ty) -> () + A.Type(_,cv,ty) -> () + | A.AsType(_,_) -> () | A.DisjType(types) -> () | A.OptType(ty) -> () | A.UniqueType(ty) -> () diff --git a/engine/check_reachability.ml b/engine/check_reachability.ml index 3bff497..9dfe82e 100644 --- a/engine/check_reachability.ml +++ b/engine/check_reachability.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -201,7 +203,7 @@ type ('a,'b,'c,'d,'e) triples = ('b, ('c, 'd) Wrapper_ctl.wrapped_binding) CTL.generic_subst list, 'e) CTL.generic_witnesstree list) list -let check_reachability triples cfg = +let check_reachability rulename triples cfg = Hashtbl.clear modified; List.iter build_modified triples; let formulas = create_formulas() in @@ -211,11 +213,15 @@ let check_reachability triples cfg = then if test_formula node ef_formula cfg then - Printf.printf "warning: node %d may be inconsistently modified\n" - node + let n = cfg#nodes#find node in + Printf.printf + "warning: %s, node %d: %s in %s may be inconsistently modified\n" + rulename node (snd n) !Flag.current_element else () else + let n = cfg#nodes#find node in failwith (Printf.sprintf - "node %d reachable by inconsistent control-flow paths" node)) + "%s: node %d: %s in %s reachable by inconsistent control-flow paths" + rulename node (snd n) !Flag.current_element)) formulas diff --git a/engine/check_reachability.mli b/engine/check_reachability.mli index a436341..3fc241e 100644 --- a/engine/check_reachability.mli +++ b/engine/check_reachability.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -34,4 +36,5 @@ type ('a,'b,'c,'d,'e) triples = Ast_ctl.generic_witnesstree list) list val check_reachability : - ('a,'b,'c,'d,'e) triples -> Control_flow_c.cflow -> unit + string (*rulename*) -> + ('a,'b,'c,'d,'e) triples -> Control_flow_c.cflow -> unit diff --git a/engine/cocci_vs_c.ml b/engine/cocci_vs_c.ml index e203cf3..8dae6dc 100644 --- a/engine/cocci_vs_c.ml +++ b/engine/cocci_vs_c.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -555,6 +557,7 @@ let one_initialisation_to_affectation x = let initialisation_to_affectation decl = match decl with | B.MacroDecl _ -> F.Decl decl + | B.MacroDeclInit _ -> F.Decl decl (* not sure... *) | B.DeclList (xs, iis) -> (* todo?: should not do that if the variable is an array cos @@ -772,7 +775,7 @@ let satisfies_econstraint c exp : bool = (match cst with | Ast_c.String (str, _) -> satisfies_regexpconstraint c str | Ast_c.MultiString strlist -> - warning "Unable to apply a constraint on an multistring constant!" + warning "Unable to apply a constraint on a multistring constant!" | Ast_c.Char (char , _) -> satisfies_regexpconstraint c char | Ast_c.Int (int , _) -> satisfies_regexpconstraint c int | Ast_c.Float (float, _) -> satisfies_regexpconstraint c float) @@ -798,7 +801,16 @@ let list_matcher match_dots rebuild_dots match_comma rebuild_comma (* '...' can take more or less the beginnings of the arguments *) let startendxs = - Common.zip (Common.inits ys) (Common.tails ys) in + (* if eas is empty there is only one possible match. + the same if eas is just a comma *) + match eas with + [] -> [(ys,[])] + | [c] when not(ys=[]) && + (match match_comma c with Some _ -> true | None -> false) -> + let r = List.rev ys in + [(List.rev(List.tl r),[List.hd r])] + | _ -> + Common.zip (Common.inits ys) (Common.tails ys) in Some (startendxs +> List.fold_left (fun acc (startxs, endxs) -> acc >||> ( @@ -1033,6 +1045,12 @@ let rec (expression: (A.expression, Ast_c.expression) matcher) = * any checks. Hopefully now have tagged SP technique. *) + | A.AsExpr(exp,asexp), expb -> + expression exp expb >>= (fun exp expb -> + expression asexp expb >>= (fun asexp expb -> + return( + ((A.AsExpr(exp,asexp)) +> wa, + expb)))) (* old: * | A.Edots _, _ -> raise Impossible. @@ -1136,9 +1154,6 @@ let rec (expression: (A.expression, Ast_c.expression) matcher) = ((B.FunCall (eb, ebs),typ), [ib1;ib2]) )))))) - - - | A.Assignment (ea1, opa, ea2, simple), ((B.Assignment (eb1, opb, eb2), typ),ii) -> let (opbi) = tuple_of_list1 ii in @@ -1153,6 +1168,17 @@ let rec (expression: (A.expression, Ast_c.expression) matcher) = )))) else fail + | A.Sequence (ea1, opa, ea2), + ((B.Sequence (eb1, eb2), typ),ii) -> + let (opbi) = tuple_of_list1 ii in + expression ea1 eb1 >>= (fun ea1 eb1 -> + expression ea2 eb2 >>= (fun ea2 eb2 -> + tokenf opa opbi >>= (fun opa opbi -> + return ( + (A.Sequence (ea1, opa, ea2)) +> wa, + ((B.Sequence (eb1, eb2), typ), [opbi]) + )))) + | A.CondExpr(ea1,ia1,ea2opt,ia2,ea3),((B.CondExpr(eb1,eb2opt,eb3),typ),ii) -> let (ib1, ib2) = tuple_of_list2 ii in expression ea1 eb1 >>= (fun ea1 eb1 -> @@ -1753,6 +1779,17 @@ and (declaration: (A.mcodekind * bool * A.declaration,B.declaration) matcher) = return ((mckstart, allminus, (A.MetaDecl (ida, keep, inherited))+> A.rewrap decla), declb)) + + | A.AsDecl(dec,asdec), decb -> + declaration (mckstart, allminus, dec) decb >>= + (fun (mckstart, allminus, dec) decb -> + let asmckstart = A.CONTEXT(A.NoPos,A.NOTHING) in + declaration (asmckstart,false,asdec) decb >>= (fun (_,_,asdec) decb -> + return( + ((mckstart, allminus, + (A.AsDecl(dec,asdec)) +> A.rewrap decla), + decb)))) + | _, (B.DeclList ([var], iiptvirgb::iifakestart::iisto)) -> onedecl allminus decla (var,iiptvirgb,iisto) >>= (fun decla (var,iiptvirgb,iisto)-> @@ -1849,7 +1886,37 @@ and (declaration: (A.mcodekind * bool * A.declaration,B.declaration) matcher) = ))))))) | _ -> fail) - | _, (B.MacroDecl _ |B.DeclList _) -> fail + | A.MacroDeclInit (sa,lpa,eas,rpa,weqa,inia,enda), + B.MacroDeclInit ((sb,ebs,inib),ii) -> + let (iisb, lpb, rpb, weqb, iiendb, iifakestart, iistob) = + (match ii with + | iisb::lpb::rpb::weqb::iiendb::iifakestart::iisto -> + (iisb,lpb,rpb,weqb,iiendb, iifakestart,iisto) + | _ -> raise Impossible + ) in + (if allminus + then minusize_list iistob + else return ((), iistob) + ) >>= (fun () iistob -> + + X.tokenf_mck mckstart iifakestart >>= (fun mckstart iifakestart -> + ident DontKnow sa (sb, iisb) >>= (fun sa (sb, iisb) -> + tokenf lpa lpb >>= (fun lpa lpb -> + tokenf rpa rpb >>= (fun rpa rpb -> + tokenf rpa rpb >>= (fun rpa rpb -> + tokenf weqa weqb >>= (fun weqa weqb -> + tokenf enda iiendb >>= (fun enda iiendb -> + arguments (seqstyle eas) (A.undots eas) ebs >>= (fun easundots ebs -> + initialiser inia inib >>= (fun inia inib -> + let eas = redots eas easundots in + + return ( + (mckstart, allminus, + (A.MacroDecl (sa,lpa,eas,rpa,enda)) +> A.rewrap decla), + (B.MacroDecl ((sb,ebs,true), + [iisb;lpb;rpb;iiendb;iifakestart] ++ iistob)) + ))))))))))) + | _, (B.MacroDecl _ |B.MacroDeclInit _ |B.DeclList _) -> fail and onedecl = fun allminus decla (declb, iiptvirgb, iistob) -> @@ -1870,7 +1937,8 @@ and onedecl = fun allminus decla (declb, iiptvirgb, iistob) -> }, iivirg) -> (match A.unwrap tya0, typb0 with - | A.Type(cv1,tya1), ((qu,il),typb1) -> + | A.Type(allminus,cv1,tya1), ((qu,il),typb1) -> + (* allminus doesn't seem useful here - nothing done with cv1 *) (match A.unwrap tya1, typb1 with | A.StructUnionDef(tya2, lba, declsa, rba), @@ -1906,14 +1974,14 @@ and onedecl = fun allminus decla (declb, iiptvirgb, iistob) -> let declsa = redots declsa undeclsa in (match A.unwrap tya2 with - | A.Type(cv3, tya3) -> + | A.Type(allminus, cv3, tya3) -> (* again allminus not used *) (match A.unwrap tya3 with | A.MetaType(ida,keep, inherited) -> fullType tya2 fake_typeb >>= (fun tya2 fake_typeb -> let tya1 = A.StructUnionDef(tya2,lba,declsa,rba)+> A.rewrap tya1 in - let tya0 = A.Type(cv1, tya1) +> A.rewrap tya0 in + let tya0 = A.Type(allminus, cv1, tya1) +> A.rewrap tya0 in let typb1 = B.StructUnion (sub,sbopt, declsb), @@ -1943,7 +2011,7 @@ and onedecl = fun allminus decla (declb, iiptvirgb, iistob) -> let tya1 = A.StructUnionDef(tya2,lba,declsa,rba)+> A.rewrap tya1 in - let tya0 = A.Type(cv1, tya1) +> A.rewrap tya0 in + let tya0 = A.Type(allminus, cv1, tya1) +> A.rewrap tya0 in match structnameb with | _nQ, (B.StructUnionName (sub, s), [iisub;iisbopt]) -> @@ -2187,6 +2255,13 @@ and (initialiser: (A.initialiser, Ast_c.initialiser) matcher) = fun ia ib -> )) ) + | A.AsInit(ini,asini), inib -> + initialiser ini inib >>= (fun ini inib -> + initialiser asini inib >>= (fun asini inib -> + return( + ((A.AsInit(ini,asini)) +> A.rewrap ia, + inib)))) + | (A.InitExpr expa, ib) -> (match A.unwrap expa, ib with | A.Edots (mcode, None), ib -> @@ -2342,7 +2417,8 @@ and str_initialisers = fun allminus ias (ibs, iicomma) -> let ibs_split = resplit_initialiser ibs iicomma in if need_unordered_initialisers ibs - then initialisers_unordered2 allminus ias_unsplit ibs_split >>= + then + initialisers_unordered2 allminus ias_unsplit ibs_split >>= (fun ias_unsplit ibs_split -> return ( split_icomma ias_unsplit, @@ -2358,6 +2434,7 @@ and ar_initialisers = fun ias (ibs, iicomma) -> (List.map (function (elem,comma) -> [Left elem; Right [comma]]) ibs) in initialisers_ordered2 ias ibs >>= (fun ias ibs_split -> + let ibs,iicomma = match List.rev ibs_split with (Right comma)::rest -> (Ast_c.unsplit_comma (List.rev rest),comma) @@ -2487,7 +2564,7 @@ and (struct_field: (A.declaration, B.field) matcher) = fun fa fb -> pr2_once "warning: bitfield not handled by ast_cocci"; fail | B.Simple (None, typb) -> - pr2_once "warning: unamed struct field not handled by ast_cocci"; + pr2_once "warning: unnamed struct field not handled by ast_cocci"; fail | B.Simple (Some nameidb, typb) -> @@ -2588,7 +2665,7 @@ and (fullType: (A.fullType, Ast_c.fullType) matcher) = X.optional_qualifier_flag (fun optional_qualifier -> X.all_bound (A.get_inherited typa) >&&> match A.unwrap typa, typb with - | A.Type(cv,ty1), ((qu,il),ty2) -> + | A.Type(allminus,cv,ty1), ((qu,il),ty2) -> if qu.B.const && qu.B.volatile then @@ -2607,11 +2684,15 @@ and (fullType: (A.fullType, Ast_c.fullType) matcher) = (* "iso-by-absence" *) | None -> let do_stuff () = - fullTypebis ty1 ((qu,il), ty2) >>= (fun ty1 fullty2 -> - return ( - (A.Type(None, ty1)) +> A.rewrap typa, - fullty2 - )) + fullTypebis ty1 ((qu,il), ty2) >>= (fun ty1 ((qu,il), ty2) -> + (if allminus + then minusize_list il + else return ((), il) + ) >>= (fun () il -> + return ( + (A.Type(allminus, None, ty1)) +> A.rewrap typa, + ((qu,il), ty2) + ))) in (match optional_qualifier, qu.B.const || qu.B.volatile with | false, false -> do_stuff () @@ -2634,7 +2715,7 @@ and (fullType: (A.fullType, Ast_c.fullType) matcher) = tokenf x i1 >>= (fun x i1 -> fullTypebis ty1 (Ast_c.nQ,ty2) >>= (fun ty1 (_, ty2) -> return ( - (A.Type(Some x, ty1)) +> A.rewrap typa, + (A.Type(allminus, Some x, ty1)) +> A.rewrap typa, ((qu, [i1]), ty2) ))) @@ -2642,7 +2723,7 @@ and (fullType: (A.fullType, Ast_c.fullType) matcher) = tokenf x i1 >>= (fun x i1 -> fullTypebis ty1 (Ast_c.nQ,ty2) >>= (fun ty1 (_, ty2) -> return ( - (A.Type(Some x, ty1)) +> A.rewrap typa, + (A.Type(allminus, Some x, ty1)) +> A.rewrap typa, ((qu, [i1]), ty2) ))) @@ -2650,6 +2731,13 @@ and (fullType: (A.fullType, Ast_c.fullType) matcher) = ) ) + | A.AsType(ty,asty), tyb -> + fullType ty tyb >>= (fun ty tyb -> + fullType asty tyb >>= (fun asty tyb -> + return( + ((A.AsType(ty,asty)) +> A.rewrap typa, + tyb)))) + | A.DisjType typas, typb -> typas +> List.fold_left (fun acc typa -> acc >|+|> (fullType typa typb)) fail @@ -2691,7 +2779,7 @@ and simulate_signed ta basea stringsa signaopt tb baseb ii rebuilda = (* In ii there is a list, sometimes of length 1 or 2 or 3. * And even if in baseb we have a Signed Int, that does not mean * that ii is of length 2, cos Signed is the default, so if in signa - * we have Signed explicitely ? we cant "accrocher" this mcode to + * we have Signed explicitly ? we cant "accrocher" this mcode to * something :( So for the moment when there is signed in cocci, * we force that there is a signed in c too (done in pattern.ml). *) @@ -2821,11 +2909,11 @@ and simulate_signed_meta ta basea signaopt tb baseb ii rebuilda = let match_to_type rebaseb = sign signaopt signbopt >>= (fun signaopt iisignbopt -> - let fta = A.rewrap basea (A.Type(None,basea)) in + let fta = A.rewrap basea (A.Type(false(*don't know*),None,basea)) in let ftb = Ast_c.nQ,(B.BaseType (rebaseb), iibaseb) in fullType fta ftb >>= (fun fta (_,tb) -> (match A.unwrap fta,tb with - A.Type(_,basea), (B.BaseType baseb, ii) -> + A.Type(_,_,basea), (B.BaseType baseb, ii) -> return ( (rebuilda (basea, signaopt)) +> A.rewrap ta, (B.BaseType (baseb), iisignbopt ++ ii) @@ -2977,7 +3065,7 @@ and (typeC: (A.typeC, Ast_c.typeC) matcher) = - (* todo: handle the iso on optionnal size specifification ? *) + (* todo: handle the iso on optional size specification ? *) | A.Array (typa, ia1, eaopt, ia2), (B.Array (ebopt, typb), ii) -> let (ib1, ib2) = tuple_of_list2 ii in fullType typa typb >>= (fun typa typb -> @@ -3025,7 +3113,7 @@ and (typeC: (A.typeC, Ast_c.typeC) matcher) = the part that matched *) let rec loop s = match A.unwrap s with - A.Type(None,ty) -> + A.Type(allminus,None,ty) -> (match A.unwrap ty with A.StructUnionName(sua, None) -> (match (term sua, sub) with @@ -3035,7 +3123,7 @@ and (typeC: (A.typeC, Ast_c.typeC) matcher) = (fun _ _ -> tokenf sua iisub >>= (fun sua iisub -> let ty = - A.Type(None, + A.Type(allminus,None, A.StructUnionName(sua, None) +> A.rewrap ty) +> A.rewrap s in return (ty,[iisub]))) @@ -3129,12 +3217,13 @@ and (typeC: (A.typeC, Ast_c.typeC) matcher) = the part that matched *) let rec loop s = match A.unwrap s with - A.Type(None,ty) -> + A.Type(allminus,None,ty) -> (match A.unwrap ty with A.EnumName(sua, None) -> tokenf sua iisub >>= (fun sua iisub -> let ty = - A.Type(None,A.EnumName(sua, None) +> A.rewrap ty) + A.Type(allminus,None,A.EnumName(sua, None) +> + A.rewrap ty) +> A.rewrap s in return (ty,[iisub])) | _ -> fail) @@ -3406,7 +3495,7 @@ and compatible_type a (b,local) = loop (a,b) | Type_cocci.FunctionPointer a, _ -> failwith - "TODO: function pointer type doesn't store enough information to determine compatability" + "TODO: function pointer type doesn't store enough information to determine compatibility" | Type_cocci.Array a, (qub, (B.Array (eopt, b),ii)) -> (* no size info for cocci *) loop (a,b) @@ -3882,11 +3971,6 @@ let rec (rule_elem_node: (A.rule_elem, Control_flow_c.node) matcher) = | _ -> raise Impossible ) - - - - - | A.Decl (mckstart,allminus,decla), F.Decl declb -> declaration (mckstart,allminus,decla) declb >>= (fun (mckstart,allminus,decla) declb -> diff --git a/engine/cocci_vs_c.mli b/engine/cocci_vs_c.mli index cf0f53c..8f3d482 100644 --- a/engine/cocci_vs_c.mli +++ b/engine/cocci_vs_c.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/engine/ctlcocci_integration.ml b/engine/ctlcocci_integration.ml index 65ed6a9..54b6f60 100644 --- a/engine/ctlcocci_integration.ml +++ b/engine/ctlcocci_integration.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -493,10 +495,10 @@ let rec nub ls = let (mysat2: Lib_engine.model -> (Lib_engine.ctlcocci * (pred list list)) -> - (Lib_engine.mvar list*Lib_engine.metavars_binding) -> + (string (*rulename*) * Lib_engine.mvar list*Lib_engine.metavars_binding) -> (Lib_engine.numbered_transformation_info * bool * Lib_engine.metavars_binding * Lib_engine.metavars_binding list)) = - fun (flow, label, states) ctl (used_after, binding) -> + fun (flow, label, states) ctl (rulename, used_after, binding) -> let binding2 = metavars_binding_to_binding2 binding in let (triples,(trans_info2, returned_any_states, used_after_envs)) = WRAPPED_ENGINE.satbis (flow, label, states) ctl @@ -504,7 +506,7 @@ let (mysat2: in if not (!Flag_parsing_cocci.sgrep_mode || !Flag.sgrep_mode2 || !Flag_matcher.allow_inconsistent_paths) - then Check_reachability.check_reachability triples flow; + then Check_reachability.check_reachability rulename triples flow; let (trans_info2,used_after_fresh_envs) = Postprocess_transinfo.process used_after binding2 trans_info2 in let used_after_envs = diff --git a/engine/ctlcocci_integration.mli b/engine/ctlcocci_integration.mli index e2a5793..a3aaac2 100644 --- a/engine/ctlcocci_integration.mli +++ b/engine/ctlcocci_integration.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -42,7 +44,7 @@ type pred = Lib_engine.predicate * Ast_cocci.meta_name Ast_ctl.modif val mysat : Lib_engine.model -> (Lib_engine.ctlcocci * (pred list list)) -> - (Lib_engine.mvar list * Lib_engine.metavars_binding) -> + (string (*rulename*) * Lib_engine.mvar list * Lib_engine.metavars_binding)-> (Lib_engine.numbered_transformation_info * bool * Lib_engine.metavars_binding * Lib_engine.metavars_binding list) diff --git a/engine/ctltotex.ml b/engine/ctltotex.ml index 13ec0ac..d2f453d 100644 --- a/engine/ctltotex.ml +++ b/engine/ctltotex.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/engine/ctltotex.mli b/engine/ctltotex.mli index a6de606..e22a3ad 100644 --- a/engine/ctltotex.mli +++ b/engine/ctltotex.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/engine/flag_engine.ml b/engine/flag_engine.ml index afb8789..6e94c93 100644 --- a/engine/flag_engine.ml +++ b/engine/flag_engine.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/engine/flag_matcher.ml b/engine/flag_matcher.ml index 100dead..e02011b 100644 --- a/engine/flag_matcher.ml +++ b/engine/flag_matcher.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/engine/isomorphisms_c_c.ml b/engine/isomorphisms_c_c.ml index 6383da7..22aced1 100644 --- a/engine/isomorphisms_c_c.ml +++ b/engine/isomorphisms_c_c.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/engine/lib_engine.ml b/engine/lib_engine.ml index 5919dc9..0d12801 100644 --- a/engine/lib_engine.ml +++ b/engine/lib_engine.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/engine/lib_matcher_c.ml b/engine/lib_matcher_c.ml index 1fd1d49..f85ac5b 100644 --- a/engine/lib_matcher_c.ml +++ b/engine/lib_matcher_c.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/engine/lib_matcher_c.mli b/engine/lib_matcher_c.mli index 1fd1d49..f85ac5b 100644 --- a/engine/lib_matcher_c.mli +++ b/engine/lib_matcher_c.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/engine/main.ml b/engine/main.ml index 680ff46..c2c759f 100644 --- a/engine/main.ml +++ b/engine/main.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/engine/pattern_c.ml b/engine/pattern_c.ml index bf874c9..3757dc8 100644 --- a/engine/pattern_c.ml +++ b/engine/pattern_c.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/engine/pattern_c.mli b/engine/pattern_c.mli index 93756f9..0289a17 100644 --- a/engine/pattern_c.mli +++ b/engine/pattern_c.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/engine/postprocess_transinfo.ml b/engine/postprocess_transinfo.ml index 81cbcda..049b785 100644 --- a/engine/postprocess_transinfo.ml +++ b/engine/postprocess_transinfo.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/engine/postprocess_transinfo.mli b/engine/postprocess_transinfo.mli index 09f3fa5..a63b44b 100644 --- a/engine/postprocess_transinfo.mli +++ b/engine/postprocess_transinfo.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/engine/pretty_print_engine.ml b/engine/pretty_print_engine.ml index 6c964c9..cc73a50 100644 --- a/engine/pretty_print_engine.ml +++ b/engine/pretty_print_engine.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/engine/pretty_print_engine.mli b/engine/pretty_print_engine.mli index 602f118..437d371 100644 --- a/engine/pretty_print_engine.mli +++ b/engine/pretty_print_engine.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/engine/sgrep.ml b/engine/sgrep.ml index 7442026..c5689b0 100644 --- a/engine/sgrep.ml +++ b/engine/sgrep.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/engine/transformation_c.ml b/engine/transformation_c.ml index f9eeaff..464f92b 100644 --- a/engine/transformation_c.ml +++ b/engine/transformation_c.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/engine/transformation_c.mli b/engine/transformation_c.mli index 71e36a3..a55ce20 100644 --- a/engine/transformation_c.mli +++ b/engine/transformation_c.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/flag_cocci.ml b/flag_cocci.ml index 13f369e..e50d088 100644 --- a/flag_cocci.ml +++ b/flag_cocci.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/globals/Makefile b/globals/Makefile index 6d325fe..71c6583 100644 --- a/globals/Makefile +++ b/globals/Makefile @@ -1,4 +1,6 @@ -# Copyright 2010, INRIA, University of Copenhagen +# Copyright 2012, INRIA +# Julia Lawall, Gilles Muller +# Copyright 2010-2011, 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 @@ -28,7 +30,7 @@ ############################################################################## TARGET=globals -SRC= flag.ml config.ml iteration.ml regexp.ml +SRC= flag.ml config.ml iteration.ml $(REGEXP_FILE) regexp.ml LIBS= INCLUDEDIRS= ../commons $(PCREDIR) diff --git a/globals/config.ml.in b/globals/config.ml.in index 588c9ce..9ec8712 100644 --- a/globals/config.ml.in +++ b/globals/config.ml.in @@ -1,4 +1,4 @@ -let version = "1.0.0-rc9" +let version = "1.0.0-rc11" let path = try (Sys.getenv "COCCINELLE_HOME") diff --git a/globals/flag.ml b/globals/flag.ml index 9300545..6b58465 100644 --- a/globals/flag.ml +++ b/globals/flag.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/globals/iteration.ml b/globals/iteration.ml index 5d135b6..5d282c7 100644 --- a/globals/iteration.ml +++ b/globals/iteration.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/globals/iteration.mli b/globals/iteration.mli index 8e0d0ea..098b9c0 100644 --- a/globals/iteration.mli +++ b/globals/iteration.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/globals/regexp.ml b/globals/regexp.ml deleted file mode 120000 index 0cccca8..0000000 --- a/globals/regexp.ml +++ /dev/null @@ -1 +0,0 @@ -regexp_pcre.ml \ No newline at end of file diff --git a/globals/regexp.ml b/globals/regexp.ml new file mode 100644 index 0000000..4753c58 --- /dev/null +++ b/globals/regexp.ml @@ -0,0 +1,27 @@ +(* + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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. + *) + + +include Regexp_pcre diff --git a/globals/regexp.ml.in b/globals/regexp.ml.in new file mode 100644 index 0000000..f45bcac --- /dev/null +++ b/globals/regexp.ml.in @@ -0,0 +1 @@ +include @REGEXP_FILE@ diff --git a/globals/regexp_pcre.ml b/globals/regexp_pcre.ml index 221e780..44e0551 100644 --- a/globals/regexp_pcre.ml +++ b/globals/regexp_pcre.ml @@ -1,29 +1,7 @@ (* - * 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 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/globals/regexp_str.ml b/globals/regexp_str.ml index 558a47b..3823e0a 100644 --- a/globals/regexp_str.ml +++ b/globals/regexp_str.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -32,6 +34,5 @@ let regexp string = let string_match regexp string = try - Str.search_forward regexp string 0; - true + Str.search_forward regexp string 0 >= 0 with _ -> false diff --git a/main.ml b/main.ml index 2dca9d2..eb58708 100644 --- a/main.ml +++ b/main.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -250,7 +252,7 @@ let run_profile p = let usage_msg = "Usage: " ^ basename Sys.argv.(0) ^ - " -sp_file [-o ] [-iso_file ] [options]" ^ + " --sp-file [-o ] [--iso-file ] [options]" ^ "\n" ^ "Options are:" (* forward reference trick *) @@ -268,76 +270,76 @@ let long_usage_func = ref (fun () -> ()) * use -longhelp to see them. *) let short_options = [ - "-sp_file", Arg.Set_string cocci_file, + "--sp-file", Arg.Set_string cocci_file, " the semantic patch file"; "-o", Arg.Set_string output_file, " the output file"; - "-in_place", Arg.Set inplace_modif, + "--in-place", Arg.Set inplace_modif, " do the modification on the file directly"; - "-backup_suffix", Arg.String (function s -> backup_suffix := Some s), + "--backup-suffix", Arg.String (function s -> backup_suffix := Some s), " suffix to use when making a backup for inplace"; - "-out_place", Arg.Set outplace_modif, + "--out-place", Arg.Set outplace_modif, " store modifications in a .cocci_res file"; "-U", Arg.Int (fun n -> Flag_parsing_c.diff_lines := Some (i_to_s n)), " set number of diff context lines"; - "-partial_match", Arg.Set Flag_ctl.partial_match, + "--partial-match", Arg.Set Flag_ctl.partial_match, " report partial matches of the SP on the C file"; - "-iso_file", Arg.Set_string Config.std_iso, + "--iso-file", Arg.Set_string Config.std_iso, " (default=" ^ !Config.std_iso ^")"; - "-macro_file", Arg.Set_string macro_file, + "--macro-file", Arg.Set_string macro_file, " "; - "-macro_file_builtins", Arg.Set_string Config.std_h, + "--macro-file-builtins", Arg.Set_string Config.std_h, " (default=" ^ !Config.std_h ^ ")"; - "-recursive_includes", + "--recursive-includes", Arg.Unit (function _ -> FC.include_options := FC.I_REALLY_ALL_INCLUDES), " causes all available include files, both those included in the C file(s) and those included in header files, to be used"; - "-all_includes", + "--all-includes", Arg.Unit (function _ -> FC.include_options := FC.I_ALL_INCLUDES), " causes all available include files included in the C file(s) to be used"; - "-no_includes", + "--no-includes", Arg.Unit (function _ -> FC.include_options := FC.I_NO_INCLUDES), " causes not even local include files to be used"; - "-local_includes", + "--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, + "--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, + "--include-headers", Arg.Set include_headers, " process header files independently"; "-I", Arg.String (fun x -> FC.include_path:= x::!FC.include_path ), " containing the header files (optional)"; - "-preprocess", Arg.Set preprocess, + "--preprocess", Arg.Set preprocess, " run the C preprocessor before applying the semantic match"; "-c", Arg.Set compat_mode, " gcc/cpp compatibility mode"; - "-dir", Arg.Set dir, + "--dir", Arg.Set dir, " process all files in directory recursively"; - "-use_glimpse", Arg.Unit (function _ -> Flag.scanner := Flag.Glimpse), + "--use-glimpse", Arg.Unit (function _ -> Flag.scanner := Flag.Glimpse), " works with -dir, use info generated by glimpseindex"; - "-use_google", Arg.String (function s -> Flag.scanner := Flag.Google s), + "--use-google", Arg.String (function s -> Flag.scanner := Flag.Google s), " find relevant files using google code search"; - "-use_idutils", Arg.Unit (function s -> Flag.scanner := Flag.IdUtils), + "--use-idutils", Arg.Unit (function s -> Flag.scanner := Flag.IdUtils), " find relevant files using id-utils"; - "-patch", + "--patch", Arg.String (function s -> Flag.patch := Some (Cocci.normalize_path s)), (" path name with respect to which a patch should be created\n"^ " \"\" for a file in the current directory"); - "-kbuild_info", Arg.Set_string kbuild_info, + "--kbuild-info", Arg.Set_string kbuild_info, " improve -dir by grouping related c files"; - "-pyoutput", Arg.Set_string Flag.pyoutput, + "--pyoutput", Arg.Set_string Flag.pyoutput, " Sets output routine: Standard values: "; - "-version", Arg.Unit (fun () -> + "--version", Arg.Unit (fun () -> let withpython = if Pycocci.python_support then "with" else "without" in let whichregexp = if !Regexp.pcre_support then "with PCRE support" @@ -348,18 +350,18 @@ let short_options = [ ), " guess what"; - "-date", Arg.Unit (fun () -> + "--date", Arg.Unit (fun () -> pr2 "version: $Date$"; raise (Common.UnixExit 0) ), " guess what"; - "-shorthelp", Arg.Unit (fun () -> + "--shorthelp", Arg.Unit (fun () -> !short_usage_func(); raise (Common.UnixExit 0) ), " see short list of options"; - "-longhelp", Arg.Unit (fun () -> + "--longhelp", Arg.Unit (fun () -> !long_usage_func(); raise (Common.UnixExit 0) ), @@ -383,10 +385,11 @@ let other_options = [ "aliases and obsolete options", "", [ - "-sp", Arg.Set_string cocci_file, " short option of -sp_file"; - "-iso", Arg.Set_string Config.std_iso, " short option of -iso_file"; + "--sp", Arg.Unit (function _ -> failwith "impossible"), + " command line semantic patch"; + "--iso", Arg.Set_string Config.std_iso, " short option of --iso-file"; - "-cocci_file", Arg.Set_string cocci_file, + "--cocci-file", Arg.Set_string cocci_file, " the semantic patch file"; (* "-c", Arg.Set_string cocci_file, " short option of -sp_file"; *) ]; @@ -394,25 +397,25 @@ let other_options = [ "most useful show options", "", [ - "-show_diff" , Arg.Set FC.show_diff, " "; - "-no_show_diff" , Arg.Clear FC.show_diff, " "; - "-force_diff" , Arg.Set FC.force_diff, + "--show-diff" , Arg.Set FC.show_diff, " "; + "--no-show-diff" , Arg.Clear FC.show_diff, " "; + "--force-diff" , Arg.Set FC.force_diff, "show diff even if only spacing changes"; - "-show_flow" , Arg.Set FC.show_flow, " "; + "--show-flow" , Arg.Set FC.show_flow, " "; (* works in conjunction with -show_ctl_text *) - "-ctl_inline_let", + "--ctl-inline-let", Arg.Unit (function _ -> FC.show_ctl_text := true; FC.inline_let_ctl := true), " "; - "-ctl_show_mcodekind", + "--ctl-show-mcodekind", Arg.Unit (function _ -> FC.show_ctl_text := true; FC.show_mcodekind_in_ctl := true), " "; - "-show_bindings", Arg.Set FC.show_binding_in_out, " "; - "-show_transinfo", Arg.Set Flag.show_transinfo, " "; - "-show_misc", Arg.Set Flag.show_misc, " "; - "-show_trying", Arg.Set Flag.show_trying, + "--show-bindings", Arg.Set FC.show_binding_in_out, " "; + "--show-transinfo", Arg.Set Flag.show_transinfo, " "; + "--show-misc", Arg.Set Flag.show_misc, " "; + "--show-trying", Arg.Set Flag.show_trying, " show the name of each function being processed"; - "-show_dependencies", + "--show-dependencies", Arg.Unit (function _ -> FC.show_dependencies := true; FC.show_binding_in_out := true), " show the dependencies related to each rule"; @@ -421,54 +424,54 @@ let other_options = [ "verbose subsystems options", "", [ - "-verbose_ctl_engine", + "--verbose-ctl-engine", Arg.Unit (function _ -> Flag_ctl.verbose_ctl_engine := true; FC.show_ctl_text := true) , " "; - "-verbose_match", Arg.Set Flag_ctl.verbose_match, " "; - "-verbose_engine", Arg.Set Flag_matcher.debug_engine, " "; - "-graphical_trace", Arg.Set Flag_ctl.graphical_trace, " generate a pdf file representing the matching process"; - "-gt_without_label", + "--verbose-match", Arg.Set Flag_ctl.verbose_match, " "; + "--verbose-engine", Arg.Set Flag_matcher.debug_engine, " "; + "--graphical-trace", Arg.Set Flag_ctl.graphical_trace, " generate a pdf file representing the matching process"; + "--gt-without-label", Arg.Unit (function _ -> Flag_ctl.graphical_trace := true; Flag_ctl.gt_without_label := true), - " remove graph label (requires option -graphical_trace)"; + " remove graph label (requires option -graphical-trace)"; - "-parse_error_msg", Arg.Set Flag_parsing_c.show_parsing_error, " "; - "-verbose_parsing", + "--parse-error-msg", Arg.Set Flag_parsing_c.show_parsing_error, " "; + "--verbose-parsing", Arg.Unit (fun _ -> Flag_parsing_c.verbose_parsing := true; Flag_parsing_c.show_parsing_error := true), " "; - "-type_error_msg", Arg.Set Flag_parsing_c.verbose_type, " "; + "--type-error-msg", Arg.Set Flag_parsing_c.verbose_type, " "; (* could also use Flag_parsing_c.options_verbose *) ]; "other show options", "", [ - "-show_c" , Arg.Set FC.show_c, " "; - "-show_cocci" , Arg.Set FC.show_cocci, " "; - "-show_before_fixed_flow" , Arg.Set FC.show_before_fixed_flow, " "; - "-show_ctl_tex" , Arg.Set FC.show_ctl_tex, " "; - "-show_ctl_text" , Arg.Set FC.show_ctl_text, " "; - "-show_SP" , Arg.Set Flag_parsing_cocci.show_SP, " "; + "--show-c" , Arg.Set FC.show_c, " "; + "--show-cocci" , Arg.Set FC.show_cocci, " "; + "--show-before-fixed-flow" , Arg.Set FC.show_before_fixed_flow, " "; + "--show-ctl-tex" , Arg.Set FC.show_ctl_tex, " "; + "--show-ctl-text" , Arg.Set FC.show_ctl_text, " "; + "--show-SP" , Arg.Set Flag_parsing_cocci.show_SP, " "; ]; "debug C parsing/unparsing", "", [ - "-debug_cpp", Arg.Set Flag_parsing_c.debug_cpp, " "; - "-debug_lexer", Arg.Set Flag_parsing_c.debug_lexer , " "; - "-debug_etdt", Arg.Set Flag_parsing_c.debug_etdt , " "; - "-debug_typedef", Arg.Set Flag_parsing_c.debug_typedef, " "; + "--debug-cpp", Arg.Set Flag_parsing_c.debug_cpp, " "; + "--debug-lexer", Arg.Set Flag_parsing_c.debug_lexer , " "; + "--debug-etdt", Arg.Set Flag_parsing_c.debug_etdt , " "; + "--debug-typedef", Arg.Set Flag_parsing_c.debug_typedef, " "; - "-filter_msg", Arg.Set Flag_parsing_c.filter_msg , + "--filter-msg", Arg.Set Flag_parsing_c.filter_msg , " filter some cpp message when the macro is a \"known\" cpp construct"; - "-filter_define_error", Arg.Set Flag_parsing_c.filter_define_error," "; - "-filter_msg_define_error", Arg.Set Flag_parsing_c.filter_msg_define_error, + "--filter-define-error", Arg.Set Flag_parsing_c.filter_define_error," "; + "--filter-msg-define-error", Arg.Set Flag_parsing_c.filter_msg_define_error, " filter the error msg"; - "-filter_passed_level", Arg.Set_int Flag_parsing_c.filter_passed_level," "; + "--filter-passed-level", Arg.Set_int Flag_parsing_c.filter_passed_level," "; (* debug cfg doesn't seem to have any effect, so drop it as an option *) -(* "-debug_cfg", Arg.Set Flag_parsing_c.debug_cfg , " "; *) - "-debug_unparsing", Arg.Set Flag_parsing_c.debug_unparsing, " "; +(* "--debug_cfg", Arg.Set Flag_parsing_c.debug_cfg , " "; *) + "--debug-unparsing", Arg.Set Flag_parsing_c.debug_unparsing, " "; ]; (* could use Flag_parsing_c.options_debug_with_title instead *) @@ -478,36 +481,36 @@ let other_options = [ "", [ (* todo: other profile ? *) - "-quiet", Arg.Unit (fun () -> run_profile quiet_profile), " "; - "-very_quiet", Arg.Unit (fun () -> run_profile very_quiet_profile), " "; - "-debug", Arg.Unit (fun () -> run_profile debug_profile), " "; - "-pad", Arg.Unit (fun () -> run_profile pad_profile), " "; + "--quiet", Arg.Unit (fun () -> run_profile quiet_profile), " "; + "--very-quiet", Arg.Unit (fun () -> run_profile very_quiet_profile), " "; + "--debug", Arg.Unit (fun () -> run_profile debug_profile), " "; + "--pad", Arg.Unit (fun () -> run_profile pad_profile), " "; ]; "bench options", "", [ - "-profile", Arg.Unit (function () -> Common.profile := Common.PALL) , + "--profile", Arg.Unit (function () -> Common.profile := Common.PALL) , " gather timing information about the main coccinelle functions"; - "-bench", Arg.Int (function x -> Flag_ctl.bench := x), + "--bench", Arg.Int (function x -> Flag_ctl.bench := x), " for profiling the CTL engine"; - "-timeout", Arg.Int (fun x -> FC.timeout := Some x), + "--timeout", Arg.Int (fun x -> FC.timeout := Some x), " timeout in seconds"; - "-steps", Arg.Int (fun x -> Flag_ctl.steps := Some x), + "--steps", Arg.Int (fun x -> Flag_ctl.steps := Some x), " max number of model checking steps per code unit"; - "-iso_limit", Arg.Int (fun x -> Flag_parsing_cocci.iso_limit := Some x), + "--iso-limit", Arg.Int (fun x -> Flag_parsing_cocci.iso_limit := Some x), " max depth of iso application"; - "-no_iso_limit", Arg.Unit (fun _ -> Flag_parsing_cocci.iso_limit := None), + "--no-iso-limit", Arg.Unit (fun _ -> Flag_parsing_cocci.iso_limit := None), " disable limit on max depth of iso application"; - "-track_iso", Arg.Set Flag.track_iso_usage, + "--track-iso", Arg.Set Flag.track_iso_usage, " gather information about isomorphism usage"; - "-disable_iso", + "--disable-iso", Arg.String (fun s -> Flag_parsing_cocci.disabled_isos := s :: !Flag_parsing_cocci.disabled_isos), " disable a specific isomorphism"; - "-profile_iso", + "--profile-iso", Arg.Unit (function () -> Common.profile := @@ -521,155 +524,155 @@ let other_options = [ "change of algorithm options", "", [ - "-popl", Arg.Set FC.popl, +(* "--popl", Arg.Set FC.popl, " simplified SmPL, for the popl paper"; - "-popl_mark_all", + "--popl_mark_all", Arg.Unit (function _ -> FC.popl := true; Flag_popl.mark_all := true), " simplified SmPL, for the popl paper"; - "-popl_keep_all_wits", + "--popl_keep_all_wits", Arg.Unit (function _ -> FC.popl := true; Flag_popl.keep_all_wits := true), " simplified SmPL, for the popl paper"; - "-hrule", Arg.String + "--hrule", Arg.String (function s -> Flag.make_hrule := Some s; FC.include_options := FC.I_NO_INCLUDES), " semantic patch generation"; - - "-keep_comments", Arg.Set Flag_parsing_c.keep_comments, +*) + "--keep-comments", Arg.Set Flag_parsing_c.keep_comments, " keep comments around removed code"; - "-loop", Arg.Set Flag_ctl.loop_in_src_code, " "; - "-no_loops", Arg.Set Flag_parsing_c.no_loops, + "--loop", Arg.Set Flag_ctl.loop_in_src_code, " "; + "--no-loops", Arg.Set Flag_parsing_c.no_loops, " drop all back edges derived from looping constructs - unsafe"; - "-no_gotos", Arg.Set Flag_parsing_c.no_gotos, + "--no-gotos", Arg.Set Flag_parsing_c.no_gotos, " drop all jumps derived from gotos - unsafe"; - "-no_saved_typedefs", Arg.Clear Flag_cocci.use_saved_typedefs, + "--no-saved-typedefs", Arg.Clear Flag_cocci.use_saved_typedefs, " drop all inferred typedefs from one parse of some code to the next"; - "-ocaml_regexps", Arg.Clear Regexp.pcre_support, + "--ocaml-regexps", Arg.Clear Regexp.pcre_support, " use OCaml Str regular expressions for constraints"; - "-l1", Arg.Clear Flag_parsing_c.label_strategy_2, " "; - "-ifdef_to_if", Arg.Set FC.ifdef_to_if, + "--l1", Arg.Clear Flag_parsing_c.label_strategy_2, " "; + "--ifdef-to-if", Arg.Set FC.ifdef_to_if, " convert ifdef to if (experimental)"; - "-no_ifdef_to_if", Arg.Clear FC.ifdef_to_if, + "--no-ifdef-to-if", Arg.Clear FC.ifdef_to_if, " convert ifdef to if (experimental)"; - "-disable_multi_pass", Arg.Set Flag_parsing_c.disable_multi_pass, " "; + "--disable-multi-pass", Arg.Set Flag_parsing_c.disable_multi_pass, " "; - "-noif0_passing", Arg.Clear Flag_parsing_c.if0_passing, + "--noif0-passing", Arg.Clear Flag_parsing_c.if0_passing, " "; - "-noadd_typedef_root", Arg.Clear Flag_parsing_c.add_typedef_root, " "; + "--noadd-typedef-root", Arg.Clear Flag_parsing_c.add_typedef_root, " "; (* could use Flag_parsing_c.options_algo instead *) - "-disallow_nested_exps", Arg.Set Flag_matcher.disallow_nested_exps, + "--disallow-nested-exps", Arg.Set Flag_matcher.disallow_nested_exps, " disallow an expresion pattern from matching a term and its subterm"; - "-disable_worth_trying_opt", Arg.Clear FC.worth_trying_opt, + "--disable-worth-trying-opt", Arg.Clear FC.worth_trying_opt, " "; - "-only_return_is_error_exit", + "--only-return-is-error-exit", Arg.Set Flag_matcher.only_return_is_error_exit, "if this flag is not set, then break and continue are also error exits"; (* the following is a hack to make it easier to add code in sgrep-like code, essentially to compensate for the fact that we don't have any way of printing things out *) - "-allow_inconsistent_paths", + "--allow-inconsistent-paths", Arg.Set Flag_matcher.allow_inconsistent_paths, " if this flag is set don't check for inconsistent paths; dangerous"; - "-no_safe_expressions", + "--no-safe-expressions", Arg.Set Flag_matcher.no_safe_expressions, " make an expression disjunction not prioritise the topmost disjunct"; - "-int_bits", Arg.Int Flag_parsing_c.set_int_bits, + "--int-bits", Arg.Int Flag_parsing_c.set_int_bits, " the number of bits in an unsigned int"; - "-long_bits", Arg.Int Flag_parsing_c.set_long_bits, + "--long-bits", Arg.Int Flag_parsing_c.set_long_bits, " the number of bits in an unsigned long"; - "-linux_spacing", Arg.Unit Flag_parsing_c.set_linux_spacing, + "--linux-spacing", Arg.Unit Flag_parsing_c.set_linux_spacing, " spacing of + code follows the conventions of Linux"; - "-smpl_spacing", Arg.Unit Flag_parsing_c.set_smpl_spacing, + "--smpl-spacing", Arg.Unit Flag_parsing_c.set_smpl_spacing, " spacing of + code follows the semantic patch"; "-D", Arg.String Flag.set_defined_virtual_rules, " indicate that a virtual rule should be considered to be matched"; - "-c++", Arg.Set Flag.c_plus_plus, + "--c++", Arg.Set Flag.c_plus_plus, " make a small attempt to parse C++ files" ]; "misc options", "", [ - "-debugger", Arg.Set Common.debugger, + "--debugger", Arg.Set Common.debugger, " option to set if launch spatch in ocamldebug"; - "-disable_once", Arg.Set Common.disable_pr2_once, + "--disable-once", Arg.Set Common.disable_pr2_once, " to print more messages"; - "-show_trace_profile", Arg.Set Common.show_trace_profile, + "--show-trace-profile", Arg.Set Common.show_trace_profile, " show trace"; - "-save_tmp_files", Arg.Set Common.save_tmp_files, " "; + "--save-tmp-files", Arg.Set Common.save_tmp_files, " "; ]; "concurrency", "", [ - "-index", Arg.Int (function x -> distrib_index := Some x) , + "--index", Arg.Int (function x -> distrib_index := Some x) , " the processor to use for this run of spatch"; - "-max", Arg.Int (function x -> distrib_max := Some x) , + "--max", Arg.Int (function x -> distrib_max := Some x) , " the number of processors available"; - "-mod_distrib", Arg.Set mod_distrib, + "--mod-distrib", Arg.Set mod_distrib, " use mod to distribute files among the processors"; ]; "pad options", "", [ - "-use_cache", Arg.Set Flag_parsing_c.use_cache, + "--use-cache", Arg.Set Flag_parsing_c.use_cache, " use .ast_raw pre-parsed cached C file"; - "-cache_prefix", + "--cache_prefix", Arg.String (function s -> Flag_parsing_c.cache_prefix := Some s; Flag_parsing_c.use_cache := true), - " directory of cached ASTs, sets -use_cache"; + " directory of cached ASTs, sets -use-cache"; (* could use Flag_parsing_c.options_pad instead *) - "-cache_limit", + "--cache-limit", Arg.Int (function n -> Flag_parsing_c.cache_limit := Some n), - " maximum number of cached ASTs, sets -use_cache"; + " maximum number of cached ASTs, sets -use-cache"; ]; "test mode and test options (works with tests/ or .ok files)", - "The test options don't work with the -sp_file and so on.", + "The test options don't work with the --sp-file and so on.", [ - "-test", Arg.Set test_mode, + "--test", Arg.Set test_mode, " launch spatch on tests/file.[c,cocci]"; - "-testall", Arg.Set test_all, + "--testall", Arg.Set test_all, " launch spatch on all files in tests/ having a .res"; - "-test_okfailed", Arg.Set test_okfailed, + "--test-okfailed", Arg.Set test_okfailed, " generates .{ok,failed,spatch_ok} files using .res files"; - "-test_regression_okfailed", Arg.Set test_regression_okfailed, + "--test-regression-okfailed", Arg.Set test_regression_okfailed, " process the .{ok,failed,spatch_ok} files in current dir"; - "-compare_with_expected", Arg.Set compare_with_expected, + "--compare-with-expected", Arg.Set compare_with_expected, " use also file.res"; - "-expected_score_file", Arg.Set_string expected_score_file, + "--expected-score-file", Arg.Set_string expected_score_file, " which score file to compare with in -testall"; - "-relax_include_path", Arg.Set FC.relax_include_path, + "--relax-include-path", Arg.Set FC.relax_include_path, " "; ]; "action mode", - ("The action options don't work with the -sp_file and so on." ^ "\n" ^ + ("The action options don't work with the --sp-file and so on." ^ "\n" ^ "It's for the other (internal) uses of the spatch program." ), (* -token_c, -parse_c, etc *) ((Common.options_of_actions action (Test_parsing_c.actions())) ++ [ - (let s = "-parse_cocci" in s, Arg.Unit (fun () -> action := s), + (let s = "--parse-cocci" in s, Arg.Unit (fun () -> action := s), " "); - (let s = "-compare_c" in s, Arg.Unit (fun () -> action := s), + (let s = "--compare-c" in s, Arg.Unit (fun () -> action := s), " "); ]); ] @@ -734,7 +737,7 @@ let short_usage () = Common.short_usage usage_msg short_options; pr2 ""; pr2 "Example of use:"; - pr2 " ./spatch -sp_file foo.cocci foo.c -o /tmp/newfoo.c"; + pr2 " ./spatch --sp-file foo.cocci foo.c -o /tmp/newfoo.c"; pr2 ""; end @@ -833,7 +836,7 @@ let rec main_action xs = | _ -> failwith "only one .cocci file allowed"); Iteration.base_file_list := xs; let rec toploop = function - [] -> raise Impossible + [] -> failwith "no C files provided" | x::xs -> (* a more general solution would be to use * Common.files_of_dir_or_files (x::xs) @@ -843,7 +846,7 @@ let rec main_action xs = dir := (Common.is_directory x); if !cocci_file =$= "" - then failwith "I need a cocci file, use -sp_file "; + then failwith "I need a cocci file, use --sp-file "; if !dir && !Flag.patch =*= None then @@ -945,6 +948,9 @@ let rec main_action xs = let res = infiles +> List.map (fun cfiles -> pr2 ("HANDLING: " ^ (join " " cfiles)); + (*pr2 (List.hd(Common.cmd_to_list "free -m | grep Mem"));*) + flush stderr; + Common.timeout_function_opt !FC.timeout (fun () -> Common.report_if_take_time 10 (join " " cfiles) (fun () -> try @@ -1045,6 +1051,12 @@ and generate_outfiles outfiles x (* front file *) xs (* other files *) = ("-o can not be applied because there are multiple " ^ "modified files")) +let fix_chars s = + if (String.length s) > 2 && String.get s 0 = '-' + && not (String.get s 1 = '-') + then "-"^(String.concat "-" (Str.split (Str.regexp_string "_") s)) + else s + (*****************************************************************************) (* The coccinelle main entry point *) (*****************************************************************************) @@ -1052,10 +1064,18 @@ let main () = begin let arglist = Array.to_list Sys.argv in let arglist = Command_line.command_line arglist in - + let arglist = List.map fix_chars arglist in + + let contains_cocci = + (* rather a hack... don't want to think about all possible options *) + List.exists + (function x -> Filename.check_suffix x ".cocci") + arglist && + not (List.mem "--parse-cocci" arglist) in if not (null (Common.inter_set arglist - ["-cocci_file";"-sp_file";"-sp";"-test";"-testall"; - "-test_okfailed";"-test_regression_okfailed"])) + ["--cocci-file";"--sp-file";"--sp";"--test";"--testall"; + "--test-okfailed";"--test-regression-okfailed"])) + or contains_cocci then run_profile quiet_profile; let args = ref [] in @@ -1065,6 +1085,19 @@ let main () = (* this call can set up many global flag variables via the cmd line *) arg_parse2 (Arg.align all_options) (fun x -> args := x::!args) usage_msg (Array.of_list arglist); + args := + List.filter + (function arg -> + if Filename.check_suffix arg ".cocci" + then + begin + (if !cocci_file = "" + then cocci_file := arg + else failwith "only one .cocci file allowed"); + false + end + else true) + !args; (* julia hack so that one can override directories specified on * the command line. *) @@ -1157,13 +1190,13 @@ let main () = | xs when List.mem !action (Common.action_list all_actions) -> Common.do_action !action xs all_actions - | [file] when !action =$= "-parse_cocci" -> - Testing.test_parse_cocci file + | [] when !action =$= "--parse-cocci" -> + Testing.test_parse_cocci !cocci_file (* I think this is used by some scripts in some Makefile for our * big-tests. So dont remove. *) - | [file1;file2] when !action =$= "-compare_c" -> + | [file1;file2] when !action =$= "--compare-c" -> Test_parsing_c.test_compare_c file1 file2 (* result = unix code *) (* could add the Test_parsing_c.test_actions such as -parse_c & co *) diff --git a/ocaml/Makefile b/ocaml/Makefile index 52c44f2..3579620 100644 --- a/ocaml/Makefile +++ b/ocaml/Makefile @@ -7,7 +7,7 @@ TARGET=cocciocaml -SRC=coccilib.ml ocamlcocci_aux.ml prepare_ocamlcocci.ml run_ocamlcocci.ml +SRC=coccilib.ml ocamlcocci_aux.ml $(OCAMLCOCCI_FILE) prepare_ocamlcocci.ml run_ocamlcocci.ml #LIBS=../commons/commons.cma ../parsing_c/parsing_c.cma #INCLUDES= -I ../commons -I ../parsing_c diff --git a/ocaml/prepare_ocamlcocci.ml b/ocaml/prepare_ocamlcocci.ml deleted file mode 120000 index 59536b4..0000000 --- a/ocaml/prepare_ocamlcocci.ml +++ /dev/null @@ -1 +0,0 @@ -yes_prepare_ocamlcocci.ml \ No newline at end of file diff --git a/ocaml/prepare_ocamlcocci.ml b/ocaml/prepare_ocamlcocci.ml new file mode 100644 index 0000000..94bc873 --- /dev/null +++ b/ocaml/prepare_ocamlcocci.ml @@ -0,0 +1 @@ +include Yes_prepare_ocamlcocci diff --git a/ocaml/prepare_ocamlcocci.ml.in b/ocaml/prepare_ocamlcocci.ml.in new file mode 100644 index 0000000..06f66db --- /dev/null +++ b/ocaml/prepare_ocamlcocci.ml.in @@ -0,0 +1 @@ +include @OCAMLCOCCI_FILE@ diff --git a/parsing_c/ast_c.ml b/parsing_c/ast_c.ml index e620465..b62c388 100644 --- a/parsing_c/ast_c.ml +++ b/parsing_c/ast_c.ml @@ -517,6 +517,8 @@ and declaration = (* cppext: *) (* bool is true if there is a ; at the end *) | MacroDecl of (string * argument wrap2 list * bool) wrap (* fakestart *) + | MacroDeclInit of + (string * argument wrap2 list * initialiser) wrap (* fakestart *) and onedecl = { v_namei: (name * v_init) option; diff --git a/parsing_c/flag_parsing_c.ml b/parsing_c/flag_parsing_c.ml index c56014c..cdb5df1 100644 --- a/parsing_c/flag_parsing_c.ml +++ b/parsing_c/flag_parsing_c.ml @@ -22,7 +22,7 @@ let common_h = ref (mk_macro_path ~cocci_path:!path "common_macros.h") let cmdline_flags_macrofile () = [ - "-macro_file_builtins", Arg.Set_string std_h, + "--macro-file-builtins", Arg.Set_string std_h, " (default=" ^ !std_h ^ ")"; ] @@ -47,7 +47,7 @@ let std_envir = ref (Filename.concat !path "config/envos/environment_splint.h") let cmdline_flags_envfile () = [ - "-env_file", Arg.Set_string std_envir, + "--env-file", Arg.Set_string std_envir, " (default=" ^ !std_envir ^ ")"; ] @@ -87,22 +87,22 @@ let show_flow_labels = ref true let cmdline_flags_verbose () = [ - "-no_verbose_parsing", Arg.Clear verbose_parsing , " "; - "-no_verbose_lexing", Arg.Clear verbose_lexing , " "; - "-no_verbose_annotater", Arg.Clear verbose_annotater , " "; + "--no-verbose-parsing", Arg.Clear verbose_parsing , " "; + "--no-verbose-lexing", Arg.Clear verbose_lexing , " "; + "--no-verbose-annotater", Arg.Clear verbose_annotater , " "; - "-no_parse_error_msg", Arg.Clear verbose_parsing, " "; - "-no_type_error_msg", Arg.Clear verbose_type, " "; + "--no-parse-error-msg", Arg.Clear verbose_parsing, " "; + "--no-type-error-msg", Arg.Clear verbose_type, " "; - "-filter_msg", Arg.Set filter_msg , + "--filter-msg", Arg.Set filter_msg , " filter some cpp message when the macro is a \"known\" cpp construct"; - "-filter_msg_define_error",Arg.Set filter_msg_define_error, + "--filter-msg-define-error",Arg.Set filter_msg_define_error, " filter the error msg"; - "-filter_define_error",Arg.Set filter_define_error, + "--filter-define-error",Arg.Set filter_define_error, " filter the error, which will not be added in the stat"; - "-filter_passed_level",Arg.Set_int filter_passed_level," "; + "--filter-passed-level",Arg.Set_int filter_passed_level," "; ] @@ -124,13 +124,13 @@ let debug_cfg = ref false (* "debug C parsing/unparsing", "" *) let cmdline_flags_debugging () = [ - "-debug_cpp", Arg.Set debug_cpp, " "; - "-debug_lexer", Arg.Set debug_lexer , " "; - "-debug_etdt", Arg.Set debug_etdt , " "; - "-debug_typedef", Arg.Set debug_typedef, " "; + "--debug-cpp", Arg.Set debug_cpp, " "; + "--debug-lexer", Arg.Set debug_lexer , " "; + "--debug-etdt", Arg.Set debug_etdt , " "; + "--debug-typedef", Arg.Set debug_typedef, " "; - "-debug_cfg", Arg.Set debug_cfg , " "; - "-debug_unparsing", Arg.Set debug_unparsing, " "; + "--debug-cfg", Arg.Set debug_cfg , " "; + "--debug-unparsing", Arg.Set debug_unparsing, " "; ] (*****************************************************************************) @@ -140,8 +140,8 @@ let cmdline_flags_debugging () = let check_annotater = ref true let cmdline_flags_checks () = [ - "-disable_check_annotater", Arg.Clear check_annotater, " "; - "-enable_check_annotater", Arg.Set check_annotater, " "; + "--disable-check-annotater", Arg.Clear check_annotater, " "; + "--enable-check-annotater", Arg.Set check_annotater, " "; ] (*****************************************************************************) @@ -153,7 +153,7 @@ let label_strategy_2 = ref false let cmdline_flags_algos () = [ - "-l1", Arg.Clear label_strategy_2, " "; + "--l1", Arg.Clear label_strategy_2, " "; ] (*****************************************************************************) @@ -171,17 +171,17 @@ let add_typedef_root = ref true let cmdline_flags_parsing_algos () = [ - "-directive_passing", Arg.Set cpp_directive_passing, + "--directive-passing", Arg.Set cpp_directive_passing, " pass most cpp directives, especially when inside function"; - "-ifdef_passing", Arg.Set ifdef_directive_passing, + "--ifdef-passing", Arg.Set ifdef_directive_passing, " pass ifdef directives "; - "-noif0_passing", Arg.Clear if0_passing, + "--noif0-passing", Arg.Clear if0_passing, " "; - "-noadd_typedef_root", Arg.Clear add_typedef_root, " "; - "-noadd_typedef", Arg.Set disable_add_typedef, " "; + "--noadd-typedef-root", Arg.Clear add_typedef_root, " "; + "--noadd-typedef", Arg.Set disable_add_typedef, " "; - "-disable_multi_pass", Arg.Set disable_multi_pass, " "; + "--disable-multi-pass", Arg.Set disable_multi_pass, " "; ] (*****************************************************************************) @@ -201,7 +201,7 @@ let cmdline_flags_other () = "-U", Arg.Int (fun n -> diff_lines := Some (Common.i_to_s n)), " set number of diff context lines"; - "-use_cache", Arg.Set use_cache, + "--use-cache", Arg.Set use_cache, " use .ast_raw pre-parsed cached C file"; ] diff --git a/parsing_c/parse_c.ml b/parsing_c/parse_c.ml index bea0efc..15f43a7 100644 --- a/parsing_c/parse_c.ml +++ b/parsing_c/parse_c.ml @@ -1062,7 +1062,7 @@ let parse_cache file = if not !Flag_parsing_c.use_cache then parse_print_error_heuristic None None file else - let _ = pr2 "TOFIX: use_cache is not sensitive to changes in the considered macros, include files, etc" in + let _ = pr2_once "TOFIX: use_cache is not sensitive to changes in the considered macros, include files, etc" in let need_no_changed_files = (* should use Sys.argv.(0), would be safer. *) @@ -1089,17 +1089,17 @@ let parse_cache file = | (Some limit,Some prefix) -> let count = Common.cmd_to_list - (Printf.sprintf - "test -e %s && ls %s/*.ast_raw %s/*.depend_raw | wc -l" - prefix prefix prefix) in + (Printf.sprintf "test -e %s && find %s -name \"*_raw\" | wc -l" + prefix prefix) in match count with [c] -> if int_of_string c >= limit then let _ = Sys.command - (Printf.sprintf "/bin/rm -r %s/*.ast_raw %s/*.depend_raw" - prefix prefix) in + (Printf.sprintf + "find %s -name \"*_raw\" -exec /bin/rm {} \\;" + prefix) in () | _ -> ()); (* recompute *) diff --git a/parsing_c/parser_c.mly b/parsing_c/parser_c.mly index 6095239..1de46f6 100644 --- a/parsing_c/parser_c.mly +++ b/parsing_c/parser_c.mly @@ -1362,6 +1362,19 @@ decl2: MacroDecl ((fst $3, $5, true), [snd $3;$4;$6;$7;fakeInfo();$1;$2])} + | TMacroDecl TOPar argument_list TCPar teq initialize TPtVirg + { function _ -> + MacroDeclInit ((fst $1, $3, $6), [snd $1;$2;$4;$5;$7;fakeInfo()]) } + | Tstatic TMacroDecl TOPar argument_list TCPar teq initialize TPtVirg + { function _ -> + MacroDeclInit ((fst $2, $4, $7),[snd $2;$3;$5;$6;$8;fakeInfo();$1]) } + | Tstatic TMacroDeclConst TMacroDecl TOPar argument_list TCPar + teq initialize TPtVirg + { function _ -> + MacroDeclInit + ((fst $3, $5, $8), [snd $3;$4;$6;$7;$9;fakeInfo();$1;$2])} + + /*(*-----------------------------------------------------------------------*)*/ decl_spec2: | storage_class_spec { {nullDecl with storageD = (fst $1, [snd $1]) } } diff --git a/parsing_c/parsing_hacks.ml b/parsing_c/parsing_hacks.ml index f590219..374b496 100644 --- a/parsing_c/parsing_hacks.ml +++ b/parsing_c/parsing_hacks.ml @@ -1644,6 +1644,10 @@ let pointer = function | TAnd _ when !Flag.c_plus_plus -> true | _ -> false +let ident_or_star = function + TIdent _ -> true + | x -> pointer x + (* This function is inefficient, because it will look over a K&R header, or function prototype multiple times. At least when we see a , and are in a parameter list, we know we will eventually see a close paren, and it @@ -1986,13 +1990,14 @@ let lookahead2 ~pass next before = *) (* (xx) yy *) - | (TIdent (s, i1)::TCPar i2::(TIdent (_,i3)|TInt (_,i3))::_ , + | (TIdent (s, i1)::TCPar i2::(TIdent (_,i3)|TInt (_,i3))::after::_ , (TOPar info)::x::_) - when not (TH.is_stuff_taking_parenthized x) && - Ast_c.line_of_info i2 =|= Ast_c.line_of_info i3 + when not (TH.is_stuff_taking_parenthized x) (* && + Ast_c.line_of_info i2 =|= Ast_c.line_of_info i3 - why useful? + *) && ok_typedef s + && not (ident_or_star after) (* possible K&R declaration *) -> - msg_typedef s i1 29; LP.add_typedef_root s; (*TOPar info*) TypedefIdent (s, i1) diff --git a/parsing_c/pretty_print_c.ml b/parsing_c/pretty_print_c.ml index aeaf84d..d200825 100644 --- a/parsing_c/pretty_print_c.ml +++ b/parsing_c/pretty_print_c.ml @@ -38,6 +38,7 @@ type 'a printer = 'a -> unit type pretty_printers = { expression : Ast_c.expression printer; arg_list : (Ast_c.argument Ast_c.wrap2 list) printer; + arg : Ast_c.argument printer; statement : Ast_c.statement printer; decl : Ast_c.declaration printer; field : Ast_c.field printer; @@ -919,8 +920,25 @@ let mk_pretty_printers pr_elem rp; - | (DeclList (_, _) | (MacroDecl _)) -> raise Impossible + | MacroDeclInit + ((s, es, ini), iis::lp::rp::eq::iiend::ifakestart::iisto) -> + pr_elem ifakestart; + iisto +> List.iter pr_elem; (* static and const *) + pr_elem iis; + pr_elem lp; + es +> List.iter (fun (e, opt) -> + assert (List.length opt <= 1); + opt +> List.iter pr_elem; + pp_argument e; + ); + + pr_elem rp; + pr_elem eq; + pp_init ini; + pr_elem iiend; + | (DeclList (_, _) | (MacroDecl _) | (MacroDeclInit _)) -> + raise Impossible (* ---------------------- *) and pp_init (init, iinit) = @@ -1311,6 +1329,7 @@ and pp_init (init, iinit) = { expression = pp_expression; arg_list = pp_arg_list; + arg = pp_argument; statement = pp_statement; decl = pp_decl; field = pp_field; @@ -1376,6 +1395,9 @@ let pp_expression_gen ~pr_elem ~pr_space = let pp_arg_list_gen ~pr_elem ~pr_space = (pp_elem_sp pr_elem pr_space).arg_list +let pp_arg_gen ~pr_elem ~pr_space = + (pp_elem_sp pr_elem pr_space).arg + let pp_statement_gen ~pr_elem ~pr_space = (pp_elem_sp pr_elem pr_space).statement diff --git a/parsing_c/pretty_print_c.mli b/parsing_c/pretty_print_c.mli index 0ea3d2e..b9434f0 100644 --- a/parsing_c/pretty_print_c.mli +++ b/parsing_c/pretty_print_c.mli @@ -9,6 +9,7 @@ type 'a printer = 'a -> unit type pretty_printers = { expression : Ast_c.expression printer; arg_list : (Ast_c.argument Ast_c.wrap2 list) printer; + arg : Ast_c.argument printer; statement : Ast_c.statement printer; decl : Ast_c.declaration printer; field : Ast_c.field printer; @@ -37,6 +38,8 @@ val pp_expression_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer -> Ast_c.expression printer val pp_arg_list_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer -> (Ast_c.argument Ast_c.wrap2 list) printer +val pp_arg_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer -> + Ast_c.argument printer val pp_decl_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer -> Ast_c.declaration printer val pp_field_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer -> diff --git a/parsing_c/test_parsing_c.ml b/parsing_c/test_parsing_c.ml index 9150a8a..02c66bc 100644 --- a/parsing_c/test_parsing_c.ml +++ b/parsing_c/test_parsing_c.ml @@ -483,55 +483,55 @@ let test_xxx a = (*****************************************************************************) let actions () = [ - "-tokens_c", " ", + "--tokens-c", " ", Common.mk_action_1_arg test_tokens_c; - "-parse_c", " ", + "--parse-c", " ", Common.mk_action_n_arg test_parse_c; - "-parse_h", " ", + "--parse-h", " ", Common.mk_action_n_arg test_parse_h; - "-parse_ch", " ", + "--parse-ch", " ", Common.mk_action_n_arg test_parse_ch; - "-parse_i", " ", + "--parse-i", " ", Common.mk_action_n_arg test_parse_i; - "-parse", " ", + "--parse", " ", Common.mk_action_n_arg test_parse; - "-show_flow", " ", + "--show-flow", " ", Common.mk_action_1_arg (local_test_cfg true); - "-control_flow", " ", + "--control-flow", " ", Common.mk_action_1_arg (local_test_cfg true); - "-control_flow_to_file", " ", + "--control-flow-to-file", " ", Common.mk_action_1_arg (local_test_cfg false); - "-test_cfg_ifdef", " ", + "--test-cfg-ifdef", " ", Common.mk_action_1_arg test_cfg_ifdef; - "-parse_unparse", " ", + "--parse-unparse", " ", Common.mk_action_1_arg test_parse_unparse; -(* "-parse_and_print_sexp", " ", +(* "--parse-and-print-sexp", " ", Common.mk_action_1_arg parse_and_print_sexp;*) - "-type_c", " ", + "--type-c", " ", Common.mk_action_1_arg test_type_c; - "-compare_c", " ", + "--compare-c", " ", Common.mk_action_2_arg test_compare_c (* result is in unix code *); - "-comment_annotater_c", " ", + "--comment-annotater-c", " ", Common.mk_action_1_arg test_comment_annotater; - "-compare_c_hardcoded", " ", + "--compare-c-hardcoded", " ", Common.mk_action_0_arg test_compare_c_hardcoded; - "-test_attributes", " ", + "--test-attributes", " ", Common.mk_action_1_arg test_attributes; - "-test_cpp", " ", + "--test-cpp", " ", Common.mk_action_1_arg test_cpp; - "-extract_macros", " ", + "--extract-macros", " ", Common.mk_action_1_arg (extract_macros ~selection:false) ; - "-extract_macros_select", " ", + "--extract-macros-select", " ", Common.mk_action_1_arg (extract_macros ~selection:true); - "-xxx", " <>", + "--xxx", " <>", Common.mk_action_n_arg test_xxx; ] diff --git a/parsing_c/type_annoter_c.ml b/parsing_c/type_annoter_c.ml index a8dc275..5ce7284 100644 --- a/parsing_c/type_annoter_c.ml +++ b/parsing_c/type_annoter_c.ml @@ -1132,7 +1132,7 @@ let rec visit_toplevel ~just_add_in_env ~depth elem = end ); ); - | MacroDecl _ -> + | MacroDecl _ | MacroDeclInit _ -> if need_annotate_body then k d ); diff --git a/parsing_c/type_c.ml b/parsing_c/type_c.ml index 250b18e..7acaf6b 100644 --- a/parsing_c/type_c.ml +++ b/parsing_c/type_c.ml @@ -243,7 +243,7 @@ let type_of_decl decl = (* TODO normalize ? what if nested structure definition ? *) v_type ) - | Ast_c.MacroDecl _ -> + | Ast_c.MacroDecl _ | Ast_c.MacroDeclInit _ -> pr2_once "not handling MacroDecl type yet"; raise Todo @@ -268,7 +268,7 @@ let structdef_of_decl decl = | _ -> raise Impossible ) ) - | Ast_c.MacroDecl _ -> raise Impossible + | Ast_c.MacroDecl _ | Ast_c.MacroDeclInit _ -> raise Impossible diff --git a/parsing_c/unparse_c.ml b/parsing_c/unparse_c.ml index d4c54b7..c331b34 100644 --- a/parsing_c/unparse_c.ml +++ b/parsing_c/unparse_c.ml @@ -1,6 +1,7 @@ (* Yoann Padioleau, Julia Lawall * - * Copyright (C) 2010, University of Copenhagen DIKU and INRIA. + * Copyright (C) 2012, INRIA. + * Copyright (C) 2010, 2011, University of Copenhagen DIKU and INRIA. * Copyright (C) 2006, 2007, 2008, 2009 Ecole des Mines de Nantes and DIKU * * This program is free software; you can redistribute it and/or @@ -788,7 +789,7 @@ let adjust_after_paren toks = match rest with ((T2(_,Min _,_)) as a)::rerest -> (* minus *) a :: search_minus true rerest - | ((T2(_,Ctx,_)) as a)::rerest when str_of_token2 a = "," -> + | ((T2(_,Ctx,_)) as a)::rerest when seen_minus && str_of_token2 a = "," -> (* comma after ( will be deleted, so consider it as minus code already *) a :: search_minus true rerest @@ -1100,15 +1101,16 @@ let rec adjust_indentation xs = (match !_current_tabbing with [] -> aux started xs | _::new_tabbing -> + let s = String.concat "" new_tabbing in _current_tabbing := new_tabbing; - aux started xs) + Cocci2 (s,-1,-1,-1,None)::aux started xs) (* border between existing code and cocci code *) | ((T2 (tok,_,_)) as x)::((Cocci2("\n",_,_,_,_)) as y)::xs when str_of_token2 x =$= "{" -> x::aux true (y::Indent_cocci2::xs) | ((Cocci2 _) as x)::((T2 (tok,_,_)) as y)::xs when str_of_token2 y =$= "}" -> - x::aux started (y::Unindent_cocci2 true::xs) + x::aux started (Unindent_cocci2 true::y::xs) (* starting the body of the function *) | ((T2 (tok,_,_)) as x)::xs when str_of_token2 x =$= "{" -> x::aux true xs | ((Cocci2("{",_,_,_,_)) as a)::xs -> a::aux true xs diff --git a/parsing_c/unparse_cocci.ml b/parsing_c/unparse_cocci.ml index ca08fd9..1236a72 100644 --- a/parsing_c/unparse_cocci.ml +++ b/parsing_c/unparse_cocci.ml @@ -295,6 +295,9 @@ let rec expression e = | Ast.Assignment(left,op,right,_) -> expression left; pr_space(); mcode assignOp op; pr_space(); expression right + | Ast.Sequence(left,op,right) -> + expression left; mcode print_string op; + pr_space(); expression right | Ast.CondExpr(exp1,why,exp2,colon,exp3) -> expression exp1; pr_space(); mcode print_string why; print_option (function e -> pr_space(); expression e) exp2; @@ -349,6 +352,8 @@ let rec expression e = | _ -> raise Impossible ) + | Ast.AsExpr(expr,asexpr) -> expression expr + | Ast.EComma(cm) -> mcode print_string cm | Ast.DisjExpr(exp_list) -> @@ -447,7 +452,8 @@ and constant = function and fullType ft = match Ast.unwrap ft with - Ast.Type(cv,ty) -> print_option_space (mcode const_vol) cv; typeC ty + Ast.Type(_,cv,ty) -> print_option_space (mcode const_vol) cv; typeC ty + | Ast.AsType(ty, asty) -> fullType ty | Ast.DisjType _ -> failwith "can't be in plus" | Ast.OptType(_) | Ast.UniqueType(_) -> raise CantBeInPlus @@ -542,7 +548,7 @@ and storage = function and print_named_type ty id = match Ast.unwrap ty with - Ast.Type(None,ty1) -> + Ast.Type(_,None,ty1) -> (match Ast.unwrap ty1 with Ast.FunctionPointer(ty,lp1,star,rp1,lp2,params,rp2) -> print_function_pointer (ty,lp1,star,rp1,lp2,params,rp2) @@ -555,7 +561,8 @@ and print_named_type ty id = match Ast.unwrap ty with Ast.Array(ty,lb,size,rb) -> (match Ast.unwrap ty with - Ast.Type(None,ty) -> + Ast.Type(_,cv,ty) -> + print_option_space (mcode const_vol) cv; loop ty (function _ -> k (); @@ -578,7 +585,7 @@ and ty_space ty = and ft_space ty = match Ast.unwrap ty with - Ast.Type(cv,ty) -> + Ast.Type(_,cv,ty) -> (match Ast.unwrap ty with Ast.Pointer(_,_) -> () | Ast.MetaType(name,_,_) -> @@ -613,6 +620,8 @@ and declaration d = print_between force_newline pretty_print_c.Pretty_print_c.field f | _ -> raise Impossible) + | Ast.AsDecl(decl,asdecl) -> declaration decl + | Ast.Init(stg,ty,id,eq,ini,sem) -> print_option (mcode storage) stg; print_option (function _ -> pr_space()) stg; @@ -628,6 +637,12 @@ and declaration d = ident name; mcode print_string_box lp; dots (function _ -> ()) expression args; close_box(); mcode print_string rp; mcode print_string sem + | Ast.MacroDeclInit(name,lp,args,rp,eq,ini,sem) -> + ident name; mcode print_string_box lp; + dots (function _ -> ()) expression args; + close_box(); mcode print_string rp; + pr_space(); mcode print_string eq; + pr_space(); initialiser true ini; mcode print_string sem | Ast.TyDecl(ty,sem) -> fullType ty; mcode print_string sem | Ast.Typedef(stg,ty,id,sem) -> mcode print_string stg; @@ -653,6 +668,7 @@ and initialiser nlcomma i = Ast_c.MetaInitListVal ini -> pretty_print_c.Pretty_print_c.init_list ini | _ -> raise Impossible) + | Ast.AsInit(init,asinit) -> initialiser nlcomma init | Ast.InitExpr(exp) -> expression exp | Ast.ArInitList(lb,initlist,rb) -> (match Ast.undots initlist with @@ -940,6 +956,8 @@ let rec statement arity s = rule_elem arity header; pr_space(); dots force_newline (statement arity) body + | Ast.AsStmt(stmt,asstmt) -> statement arity stmt + | Ast.Disj([stmt_dots]) -> if generating then diff --git a/parsing_c/visitor_c.ml b/parsing_c/visitor_c.ml index a1fd2b1..0fd8bb2 100644 --- a/parsing_c/visitor_c.ml +++ b/parsing_c/visitor_c.ml @@ -492,11 +492,15 @@ and vk_decl = fun bigf d -> iif ii; xs +> List.iter (fun (x,ii) -> iif ii; - vk_onedecl bigf x; + vk_onedecl bigf x ); | MacroDecl ((s, args, ptvg),ii) -> + iif ii; + vk_argument_list bigf args + | MacroDeclInit ((s, args, ini),ii) -> iif ii; vk_argument_list bigf args; + vk_ini bigf ini in f (k, bigf) d and vk_decl_list = fun bigf ts -> @@ -1289,6 +1293,12 @@ and vk_decl_s = fun bigf d -> args +> List.map (fun (e,ii) -> vk_argument_s bigf e, iif ii), ptvg), iif ii) + | MacroDeclInit ((s, args, ini),ii) -> + MacroDeclInit + ((s, + args +> List.map (fun (e,ii) -> vk_argument_s bigf e, iif ii), + vk_ini_s bigf ini), + iif ii) and aux ({v_namei = var; diff --git a/parsing_cocci/Makefile b/parsing_cocci/Makefile index 5964134..aa3fb14 100644 --- a/parsing_cocci/Makefile +++ b/parsing_cocci/Makefile @@ -1,4 +1,6 @@ -# Copyright 2010, INRIA, University of Copenhagen +# Copyright 2012, INRIA +# Julia Lawall, Gilles Muller +# Copyright 2010-2011, 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 @@ -32,7 +34,7 @@ SOURCES = flag_parsing_cocci.ml type_cocci.ml ast_cocci.ml ast0_cocci.ml \ pretty_print_cocci.ml unparse_ast0.ml visitor_ast0_types.ml \ visitor_ast.ml visitor_ast0.ml compute_lines.ml comm_assoc.ml \ iso_pattern.ml iso_compile.ml single_statement.ml simple_assignments.ml \ -ast0toast.ml check_meta.ml top_level.ml type_infer.ml \ +get_metas.ml ast0toast.ml check_meta.ml top_level.ml type_infer.ml \ test_exps.ml unitary_ast0.ml arity.ml index.ml context_neg.ml \ adjust_pragmas.ml insert_plus.ml function_prototypes.ml \ unify_ast.ml semantic_cocci.ml data.ml free_vars.ml safe_for_multi_decls.ml \ diff --git a/parsing_cocci/adjacency.ml b/parsing_cocci/adjacency.ml index b95258d..763703d 100644 --- a/parsing_cocci/adjacency.ml +++ b/parsing_cocci/adjacency.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/adjacency.mli b/parsing_cocci/adjacency.mli index 9c659f8..7b81df7 100644 --- a/parsing_cocci/adjacency.mli +++ b/parsing_cocci/adjacency.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/adjust_pragmas.ml b/parsing_cocci/adjust_pragmas.ml index de9b094..31c747d 100644 --- a/parsing_cocci/adjust_pragmas.ml +++ b/parsing_cocci/adjust_pragmas.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -64,6 +66,7 @@ let rec right_decl d = | Ast0.MetaFieldList(name,lenname,pure) -> call_right right_mcode name d (function name -> Ast0.MetaFieldList(name,lenname,pure)) + | Ast0.AsDecl(decl,asdecl) -> failwith "not possible" | Ast0.Init(Some stg,ty,id,eq,ini,sem) -> call_right right_mcode sem d (function sem -> Ast0.Init(Some stg,ty,id,eq,ini,sem)) @@ -79,6 +82,9 @@ let rec right_decl d = | Ast0.MacroDecl(name,lp,args,rp,sem) -> call_right right_mcode sem d (function sem -> Ast0.MacroDecl(name,lp,args,rp,sem)) + | Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem) -> + call_right right_mcode sem d + (function sem -> Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem)) | Ast0.TyDecl(ty,sem) -> call_right right_mcode sem d (function sem -> Ast0.TyDecl(ty,sem)) @@ -139,6 +145,7 @@ let rec right_statement s = | Ast0.MetaStmtList(name,pure) -> call_right right_mcode name s (function name -> Ast0.MetaStmtList(name,pure)) + | Ast0.AsStmt(stm,asstm) -> failwith "not possible" | Ast0.Disj(starter,statement_dots_list,mids,ender) -> None | Ast0.Nest(starter,stmt_dots,ender,whn,multi) -> None (* the following are None, because they can't be adjacent to an aft node *) @@ -211,6 +218,7 @@ let rec left_ty t = call_right left_mcode name t (function name -> Ast0.TypeName(name)) | Ast0.MetaType(name,x) -> call_right left_mcode name t (function name -> Ast0.MetaType(name,x)) + | Ast0.AsType(ty,asty) -> failwith "not possible" | Ast0.DisjType(starter,types,mids,ender) -> None | Ast0.OptType(ty) -> call_right left_ty ty t (function ty -> Ast0.OptType(ty)) @@ -264,6 +272,7 @@ let rec left_decl decl = | Ast0.MetaFieldList(name,lenname,pure) -> call_right right_mcode name decl (function name -> Ast0.MetaFieldList(name,lenname,pure)) + | Ast0.AsDecl(decl,asdecl) -> failwith "not possible" | Ast0.Init(Some stg,ty,id,eq,ini,sem) -> call_right left_mcode stg decl (function stg -> Ast0.Init(Some stg,ty,id,eq,ini,sem)) @@ -279,6 +288,9 @@ let rec left_decl decl = | Ast0.MacroDecl(name,lp,args,rp,sem) -> call_right left_ident name decl (function name -> Ast0.MacroDecl(name,lp,args,rp,sem)) + | Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem) -> + call_right left_ident name decl + (function name -> Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem)) | Ast0.TyDecl(ty,sem) -> call_right left_ty ty decl (function ty -> Ast0.TyDecl(ty,sem)) | Ast0.Typedef(stg,ty,id,sem) -> diff --git a/parsing_cocci/adjust_pragmas.mli b/parsing_cocci/adjust_pragmas.mli index 8e9a400..08b9d26 100644 --- a/parsing_cocci/adjust_pragmas.mli +++ b/parsing_cocci/adjust_pragmas.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/arity.ml b/parsing_cocci/arity.ml index 160f0f9..fac9765 100644 --- a/parsing_cocci/arity.ml +++ b/parsing_cocci/arity.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -229,6 +231,12 @@ let rec top_expression opt_allowed tgt expr = let op = mcode op in let right = expression arity right in make_exp expr tgt arity (Ast0.Assignment(left,op,right,simple)) + | Ast0.Sequence(left,op,right) -> + let arity = exp_same (mcode2line op) [mcode2arity op] in + let left = expression arity left in + let op = mcode op in + let right = expression arity right in + make_exp expr tgt arity (Ast0.Sequence(left,op,right)) | Ast0.CondExpr(exp1,why,exp2,colon,exp3) -> let arity = exp_same (mcode2line why) [mcode2arity why; mcode2arity colon] in @@ -359,7 +367,7 @@ let rec top_expression opt_allowed tgt expr = let init = initialiser arity init in make_exp expr tgt arity (Ast0.Constructor(lp,ty,rp,init)) (* why does optexp exist???? *) - | Ast0.OptExp(_) | Ast0.UniqueExp(_) -> + | Ast0.OptExp(_) | Ast0.UniqueExp(_) | Ast0.AsExpr _ -> failwith "unexpected code" and expression tgt exp = top_expression false tgt exp @@ -472,7 +480,7 @@ and top_typeC tgt opt_allowed typ = | _ -> ()); let res = Ast0.DisjType(starter,types,mids,ender) in Ast0.rewrap typ res - | Ast0.OptType(_) | Ast0.UniqueType(_) -> + | Ast0.OptType(_) | Ast0.UniqueType(_) | Ast0.AsType _ -> failwith "unexpected code" and typeC tgt ty = top_typeC tgt false ty @@ -525,13 +533,26 @@ and declaration tgt decl = make_decl decl tgt arity (Ast0.UnInit(stg,ty,id,sem)) | Ast0.MacroDecl(name,lp,args,rp,sem) -> let arity = - all_same true tgt (mcode2line lp) (List.map mcode2arity [lp;rp;sem]) in + all_same true tgt (mcode2line lp) + (List.map mcode2arity [lp;rp;sem]) in let name = ident false arity name in let lp = mcode lp in let args = dots (expression arity) args in let rp = mcode rp in let sem = mcode sem in make_decl decl tgt arity (Ast0.MacroDecl(name,lp,args,rp,sem)) + | Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem) -> + let arity = + all_same true tgt (mcode2line lp) + (List.map mcode2arity [lp;rp;eq;sem]) in + let name = ident false arity name in + let lp = mcode lp in + let args = dots (expression arity) args in + let rp = mcode rp in + let ini = initialiser arity ini in + let sem = mcode sem in + make_decl decl tgt arity + (Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem)) | Ast0.TyDecl(ty,sem) -> let arity = all_same true tgt (mcode2line sem) [mcode2arity sem] in @@ -561,7 +582,7 @@ and declaration tgt decl = let dots = mcode dots in let whencode = get_option (declaration Ast0.NONE) whencode in make_decl decl tgt arity (Ast0.Ddots(dots,whencode)) - | Ast0.OptDecl(_) | Ast0.UniqueDecl(_) -> + | Ast0.OptDecl(_) | Ast0.UniqueDecl(_) | Ast0.AsDecl _ -> failwith "unexpected code" (* --------------------------------------------------------------------- *) @@ -612,7 +633,7 @@ and initialiser tgt i = let dots = mcode dots in let whencode = get_option (initialiser Ast0.NONE) whencode in make_init i tgt arity (Ast0.Idots(dots,whencode)) - | Ast0.OptIni(_) | Ast0.UniqueIni(_) -> + | Ast0.OptIni(_) | Ast0.UniqueIni(_) | Ast0.AsInit _ -> failwith "unexpected code" and designator tgt d = @@ -998,7 +1019,7 @@ and statement tgt stm = let params = define_parameters arity params in let body = dots (statement arity) body in make_rule_elem stm tgt arity (Ast0.Define(def,id,params,body)) - | Ast0.OptStm(_) | Ast0.UniqueStm(_) -> + | Ast0.OptStm(_) | Ast0.UniqueStm(_) | Ast0.AsStmt _ -> failwith "unexpected code" and define_parameters tgt params = diff --git a/parsing_cocci/arity.mli b/parsing_cocci/arity.mli index 73194c3..35c183b 100644 --- a/parsing_cocci/arity.mli +++ b/parsing_cocci/arity.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/ast0_cocci.ml b/parsing_cocci/ast0_cocci.ml index b807f37..a479f46 100644 --- a/parsing_cocci/ast0_cocci.ml +++ b/parsing_cocci/ast0_cocci.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -61,7 +63,7 @@ type info = { pos_info : position_info; it is used in deciding how much to remove, when two adjacent code tokens are removed. *) type 'a mcode = - 'a * arity * info * mcodekind * meta_pos list ref (* pos, - only *) * + 'a * arity * info * mcodekind * anything list ref (* pos, - only *) * int (* adjacency_index *) (* int ref is an index *) and 'a wrap = @@ -124,6 +126,7 @@ and base_expression = expression dots * string mcode (* ) *) | Assignment of expression * Ast.assignOp mcode * expression * bool (* true if it can match an initialization *) + | Sequence of expression * string mcode (* , *) * expression | CondExpr of expression * string mcode (* ? *) * expression option * string mcode (* : *) * expression | Postfix of expression * Ast.fixOp mcode @@ -150,6 +153,7 @@ and base_expression = TC.typeC list option * Ast.form * pure | MetaExprList of Ast.meta_name mcode (* only in arg lists *) * listlen * pure + | AsExpr of expression * expression (* as expr, always metavar *) | EComma of string mcode (* only in arg lists *) | DisjExpr of string mcode * expression list * string mcode list (* the |s *) * string mcode @@ -198,6 +202,7 @@ and base_typeC = string mcode (* { *) * declaration dots * string mcode (* } *) | TypeName of string mcode | MetaType of Ast.meta_name mcode * pure + | AsType of typeC * typeC (* as type, always metavar *) | DisjType of string mcode * typeC list * (* only after iso *) string mcode list (* the |s *) * string mcode | OptType of typeC @@ -217,12 +222,16 @@ and base_declaration = should be a separate type for fields, as in the C AST *) | MetaField of Ast.meta_name mcode * pure (* structure fields *) | MetaFieldList of Ast.meta_name mcode * listlen * pure (* structure fields *) + | AsDecl of declaration * declaration | Init of Ast.storage mcode option * typeC * ident * string mcode (*=*) * initialiser * string mcode (*;*) | UnInit of Ast.storage mcode option * typeC * ident * string mcode (* ; *) | TyDecl of typeC * string mcode (* ; *) | MacroDecl of ident (* name *) * string mcode (* ( *) * expression dots * string mcode (* ) *) * string mcode (* ; *) + | MacroDeclInit of ident (* name *) * string mcode (* ( *) * + expression dots * string mcode (* ) *) * string mcode (*=*) * + initialiser * string mcode (* ; *) | Typedef of string mcode (* typedef *) * typeC * typeC * string mcode (*;*) | DisjDecl of string mcode * declaration list * string mcode list (* the |s *) * string mcode @@ -239,6 +248,7 @@ and declaration = base_declaration wrap and base_initialiser = MetaInit of Ast.meta_name mcode * pure | MetaInitList of Ast.meta_name mcode * listlen * pure + | AsInit of initialiser * initialiser (* as init, always metavar *) | InitExpr of expression | InitList of string mcode (*{*) * initialiser_list * string mcode (*}*) * (* true if ordered, as for array, false if unordered, as for struct *) @@ -344,6 +354,7 @@ and base_statement = string mcode (* ; *) | MetaStmt of Ast.meta_name mcode * pure | MetaStmtList of Ast.meta_name mcode(*only in statement lists*) * pure + | AsStmt of statement * statement (* as statement, always metavar *) | Exp of expression (* only in dotted statement lists *) | TopExp of expression (* for macros body *) | Ty of typeC (* only at top level *) @@ -463,6 +474,7 @@ and anything = | IsoWhenTTag of expression | IsoWhenFTag of expression | MetaPosTag of meta_pos + | HiddenVarTag of anything list (* in iso_compile/pattern only *) let dotsExpr x = DotsExprTag x let dotsParam x = DotsParamTag x @@ -560,6 +572,35 @@ let set_mcode_data data (_,ar,info,mc,pos,adj) = (data,ar,info,mc,pos,adj) (* --------------------------------------------------------------------- *) +let rec meta_pos_name = function + HiddenVarTag(vars) -> + (* totally fake, just drop the rest, only for isos *) + meta_pos_name (List.hd vars) + | MetaPosTag(MetaPos(name,constraints,_)) -> name + | ExprTag(e) -> + (match unwrap e with + MetaExpr(name,constraints,ty,form,pure) -> name + | _ -> failwith "bad metavariable") + | TypeCTag(t) -> + (match unwrap t with + MetaType(name,pure) -> name + | _ -> failwith "bad metavariable") + | DeclTag(d) -> + (match unwrap d with + MetaDecl(name,pure) -> name + | _ -> failwith "bad metavariable") + | InitTag(i) -> + (match unwrap i with + MetaInit(name,pure) -> name + | _ -> failwith "bad metavariable") + | StmtTag(s) -> + (match unwrap s with + MetaStmt(name,pure) -> name + | _ -> failwith "bad metavariable") + | _ -> failwith "bad metavariable" + +(* --------------------------------------------------------------------- *) + (* unique indices, for mcode and tree nodes *) let index_counter = ref 0 let fresh_index _ = let cur = !index_counter in index_counter := cur + 1; cur @@ -600,7 +641,7 @@ let rec ast0_type_to_type ty = "For type checking assuming the name of the metavariable is the name of the type\n"; TC.EnumName(TC.MV(unwrap_mcode tag,TC.Unitary,false))) | _ -> failwith "unexpected enum type name") - | EnumName(su,None) -> failwith "nameless enum - what to do???" + | EnumName(su,None) -> TC.EnumName TC.NoName | EnumDef(ty,_,_,_) -> ast0_type_to_type ty | StructUnionName(su,Some tag) -> (match unwrap tag with @@ -618,11 +659,12 @@ let rec ast0_type_to_type ty = perhaps polymorphism would help? *) failwith "constraints not supported on struct type name" | _ -> failwith "unexpected struct/union type name") - | StructUnionName(su,None) -> failwith "nameless structure - what to do???" + | StructUnionName(su,None) -> TC.StructUnionName(structUnion su,TC.NoName) | StructUnionDef(ty,_,_,_) -> ast0_type_to_type ty | TypeName(name) -> TC.TypeName(unwrap_mcode name) | MetaType(name,_) -> TC.MetaType(unwrap_mcode name,TC.Unitary,false) + | AsType(ty,asty) -> failwith "not created yet" | DisjType(_,types,_,_) -> Common.pr2_once "disjtype not supported in smpl type inference, assuming unknown"; diff --git a/parsing_cocci/ast0_cocci.mli b/parsing_cocci/ast0_cocci.mli index aed4167..7ada39a 100644 --- a/parsing_cocci/ast0_cocci.mli +++ b/parsing_cocci/ast0_cocci.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -53,7 +55,7 @@ type info = { pos_info : position_info; isSymbolIdent : bool; (* is the token a symbol identifier or not *) } type 'a mcode = - 'a * arity * info * mcodekind * meta_pos list ref (* pos, - only *) * + 'a * arity * info * mcodekind * anything list ref (* pos, - only *) * int (* adjacency_index *) and 'a wrap = @@ -115,6 +117,7 @@ and base_expression = expression dots * string mcode (* ) *) | Assignment of expression * Ast_cocci.assignOp mcode * expression * bool (* true if it can match an initialization *) + | Sequence of expression * string mcode (* , *) * expression | CondExpr of expression * string mcode (* ? *) * expression option * string mcode (* : *) * expression | Postfix of expression * Ast_cocci.fixOp mcode @@ -141,6 +144,7 @@ and base_expression = Type_cocci.typeC list option * Ast_cocci.form * pure | MetaExprList of Ast_cocci.meta_name mcode (* only in arglists *) * listlen * pure + | AsExpr of expression * expression (* as expr, always metavar *) | EComma of string mcode (* only in arglists *) | DisjExpr of string mcode * expression list * string mcode list * string mcode @@ -189,6 +193,7 @@ and base_typeC = string mcode (* { *) * declaration dots * string mcode (* } *) | TypeName of string mcode | MetaType of Ast_cocci.meta_name mcode * pure + | AsType of typeC * typeC (* as type, always metavar *) | DisjType of string mcode * typeC list * (* only after iso *) string mcode list (* the |s *) * string mcode | OptType of typeC @@ -205,6 +210,7 @@ and base_declaration = MetaDecl of Ast_cocci.meta_name mcode * pure (* variables *) | MetaField of Ast_cocci.meta_name mcode * pure (* structure fields *) | MetaFieldList of Ast_cocci.meta_name mcode * listlen * pure + | AsDecl of declaration * declaration | Init of Ast_cocci.storage mcode option * typeC * ident * string mcode (*=*) * initialiser * string mcode (*;*) | UnInit of Ast_cocci.storage mcode option * typeC * ident * @@ -212,6 +218,9 @@ and base_declaration = | TyDecl of typeC * string mcode (* ; *) | MacroDecl of ident (* name *) * string mcode (* ( *) * expression dots * string mcode (* ) *) * string mcode (* ; *) + | MacroDeclInit of ident (* name *) * string mcode (* ( *) * + expression dots * string mcode (* ) *) * string mcode (*=*) * + initialiser * string mcode (* ; *) | Typedef of string mcode (* typedef *) * typeC * typeC * string mcode (*;*) | DisjDecl of string mcode * declaration list * string mcode list * string mcode @@ -227,6 +236,7 @@ and declaration = base_declaration wrap and base_initialiser = MetaInit of Ast_cocci.meta_name mcode * pure | MetaInitList of Ast_cocci.meta_name mcode * listlen * pure + | AsInit of initialiser * initialiser (* as init, always metavar *) | InitExpr of expression | InitList of string mcode (*{*) * initialiser_list * string mcode (*}*) * bool (* true if ordered, false if unordered *) @@ -332,6 +342,7 @@ and base_statement = | MetaStmt of Ast_cocci.meta_name mcode * pure | MetaStmtList of Ast_cocci.meta_name mcode (*only in statement lists*) * pure + | AsStmt of statement * statement (* as statement, always metavar *) | Exp of expression (* only in dotted statement lists *) | TopExp of expression (* for macros body *) | Ty of typeC (* only at top level *) @@ -455,7 +466,8 @@ and anything = | IsoWhenTag of Ast_cocci.when_modifier (*only for when code, in iso phase*) | IsoWhenTTag of expression(*only for when code, in iso phase*) | IsoWhenFTag of expression(*only for when code, in iso phase*) - | MetaPosTag of meta_pos (* only in iso phase *) + | MetaPosTag of meta_pos + | HiddenVarTag of anything list (* in iso_compile/pattern only *) val dotsExpr : expression dots -> anything val dotsInit : initialiser dots -> anything @@ -490,9 +502,9 @@ val unwrap_mcode : 'a mcode -> 'a val rewrap : 'a wrap -> 'b -> 'b wrap val rewrap_mcode : 'a mcode -> 'b -> 'b mcode val copywrap : 'a wrap -> 'b -> 'b wrap -val get_pos : 'a mcode -> meta_pos list -val get_pos_ref : 'a mcode -> meta_pos list ref -val set_pos : meta_pos list -> 'a mcode -> 'a mcode +val get_pos : 'a mcode -> anything list +val get_pos_ref : 'a mcode -> anything list ref +val set_pos : anything list -> 'a mcode -> 'a mcode val get_info : 'a wrap -> info val set_info : 'a wrap -> info -> 'a wrap val get_index : 'a wrap -> int @@ -521,6 +533,8 @@ val make_mcode : 'a -> 'a mcode val make_mcode_info : 'a -> info -> 'a mcode val make_minus_mcode : 'a -> 'a mcode +val meta_pos_name : anything -> Ast_cocci.meta_name mcode + val ast0_type_to_type : typeC -> Type_cocci.typeC val reverse_type : Type_cocci.typeC -> base_typeC exception TyConv diff --git a/parsing_cocci/ast0toast.ml b/parsing_cocci/ast0toast.ml index 17534a1..d9dd869 100644 --- a/parsing_cocci/ast0toast.ml +++ b/parsing_cocci/ast0toast.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -210,7 +212,7 @@ let check_allminus = Ast0.MINUS(r) -> let (plusses,_) = !r in plusses = Ast.NOREPLACEMENT | _ -> false in - (* special case for disj *) + (* special case for disj and asExpr etc *) let ident r k e = match Ast0.unwrap e with Ast0.DisjId(starter,id_list,mids,ender) -> @@ -221,24 +223,33 @@ let check_allminus = match Ast0.unwrap e with Ast0.DisjExpr(starter,expr_list,mids,ender) -> List.for_all r.VT0.combiner_rec_expression expr_list + | Ast0.AsExpr(exp,asexp) -> k exp | _ -> k e in let declaration r k e = match Ast0.unwrap e with Ast0.DisjDecl(starter,decls,mids,ender) -> List.for_all r.VT0.combiner_rec_declaration decls + | Ast0.AsDecl(decl,asdecl) -> k decl | _ -> k e in let typeC r k e = match Ast0.unwrap e with Ast0.DisjType(starter,decls,mids,ender) -> List.for_all r.VT0.combiner_rec_typeC decls + | Ast0.AsType(ty,asty) -> k ty + | _ -> k e in + + let initialiser r k e = + match Ast0.unwrap e with + Ast0.AsInit(init,asinit) -> k init | _ -> k e in let statement r k e = match Ast0.unwrap e with Ast0.Disj(starter,statement_dots_list,mids,ender) -> List.for_all r.VT0.combiner_rec_statement_dots statement_dots_list + | Ast0.AsStmt(stmt,asstmt) -> k stmt | _ -> k e in let case_line r k e = @@ -251,7 +262,7 @@ let check_allminus = mcode mcode mcode mcode mcode mcode mcode mcode mcode mcode mcode mcode donothing donothing donothing donothing donothing donothing - ident expression typeC donothing donothing declaration + ident expression typeC initialiser donothing declaration statement case_line donothing (* --------------------------------------------------------------------- *) @@ -307,11 +318,14 @@ let pos_mcode(term,_,info,mcodekind,pos,adj) = let mcode (term,_,info,mcodekind,pos,adj) = let pos = - List.map - (function Ast0.MetaPos(pos,constraints,per) -> - Ast.MetaPos(pos_mcode pos,constraints,per,unitary,false)) - !pos in - (term,convert_info info,convert_mcodekind adj mcodekind,pos) + List.fold_left + (function prev -> + function + Ast0.MetaPosTag(Ast0.MetaPos(pos,constraints,per)) -> + (Ast.MetaPos(pos_mcode pos,constraints,per,unitary,false))::prev + | _ -> prev) + [] !pos in + (term,convert_info info,convert_mcodekind adj mcodekind,List.rev pos) (* --------------------------------------------------------------------- *) (* Dots *) @@ -337,11 +351,14 @@ let dots fn d = (* commas in dotted lists, here due to polymorphism restrictions *) -let add_comma is_comma make_comma itemlist = +let add_comma is_comma is_dots make_comma itemlist = match Ast0.unwrap itemlist with Ast0.DOTS(x) -> (match List.rev x with [] -> itemlist +(* Not sure if comma is needed if the list is just ...; leave it there for +now. See list_matcher in cocci_vs_c.ml in first try_matches case. *) +(* | [e] when is_dots e -> itemlist*) | e::es -> if is_comma e then itemlist @@ -358,11 +375,13 @@ let add_comma is_comma make_comma itemlist = let add_exp_comma = add_comma (function x -> match Ast0.unwrap x with Ast0.EComma _ -> true | _ -> false) + (function x -> match Ast0.unwrap x with Ast0.Edots _ -> true | _ -> false) (function x -> Ast0.EComma x) and add_init_comma = add_comma (function x -> match Ast0.unwrap x with Ast0.IComma _ -> true | _ -> false) + (function x -> match Ast0.unwrap x with Ast0.Idots _ -> true | _ -> false) (function x -> Ast0.IComma x) (* --------------------------------------------------------------------- *) @@ -403,6 +422,8 @@ and expression e = Ast.FunCall(fn,lp,args,rp) | Ast0.Assignment(left,op,right,simple) -> Ast.Assignment(expression left,mcode op,expression right,simple) + | Ast0.Sequence(left,op,right) -> + Ast.Sequence(expression left,mcode op,expression right) | Ast0.CondExpr(exp1,why,exp2,colon,exp3) -> let exp1 = expression exp1 in let why = mcode why in @@ -429,20 +450,27 @@ and expression e = | Ast0.RecordPtAccess(exp,ar,field) -> Ast.RecordPtAccess(expression exp,mcode ar,ident field) | Ast0.Cast(lp,ty,rp,exp) -> - Ast.Cast(mcode lp,typeC ty,mcode rp,expression exp) + let allminus = check_allminus.VT0.combiner_rec_expression e in + Ast.Cast(mcode lp,typeC allminus ty,mcode rp,expression exp) | Ast0.SizeOfExpr(szf,exp) -> Ast.SizeOfExpr(mcode szf,expression exp) | Ast0.SizeOfType(szf,lp,ty,rp) -> - Ast.SizeOfType(mcode szf, mcode lp,typeC ty,mcode rp) - | Ast0.TypeExp(ty) -> Ast.TypeExp(typeC ty) + let allminus = check_allminus.VT0.combiner_rec_expression e in + Ast.SizeOfType(mcode szf, mcode lp,typeC allminus ty,mcode rp) + | Ast0.TypeExp(ty) -> + let allminus = check_allminus.VT0.combiner_rec_expression e in + Ast.TypeExp(typeC allminus ty) | Ast0.Constructor(lp,ty,rp,init) -> - Ast.Constructor(mcode lp,typeC ty,mcode rp,initialiser init) + let allminus = check_allminus.VT0.combiner_rec_expression e in + Ast.Constructor(mcode lp,typeC allminus ty,mcode rp,initialiser init) | Ast0.MetaErr(name,cstrts,_) -> Ast.MetaErr(mcode name,constraints cstrts,unitary,false) | Ast0.MetaExpr(name,cstrts,ty,form,_) -> Ast.MetaExpr(mcode name,constraints cstrts,unitary,ty,form,false) | Ast0.MetaExprList(name,lenname,_) -> Ast.MetaExprList(mcode name,do_lenname lenname,unitary,false) + | Ast0.AsExpr(expr,asexpr) -> + Ast.AsExpr(expression expr,expression asexpr) | Ast0.EComma(cm) -> Ast.EComma(mcode cm) | Ast0.DisjExpr(_,exps,_,_) -> Ast.DisjExpr(List.map expression exps) @@ -486,7 +514,7 @@ and do_lenname = function and rewrap_iso t t1 = rewrap t (do_isos (Ast0.get_iso t)) t1 -and typeC t = +and typeC allminus t = rewrap t (do_isos (Ast0.get_iso t)) (match Ast0.unwrap t with Ast0.ConstVol(cv,ty) -> @@ -501,7 +529,8 @@ and typeC t = List.map (function ty -> Ast.Type - (Some (mcode cv),rewrap_iso ty (base_typeC ty))) + (allminus, Some (mcode cv), + rewrap_iso ty (base_typeC allminus ty))) (collect_disjs ty) in (* one could worry that isos are lost because we flatten the disjunctions. but there should not be isos on the disjunctions @@ -514,38 +543,43 @@ and typeC t = | Ast0.Array(_,_,_,_) | Ast0.EnumName(_,_) | Ast0.StructUnionName(_,_) | Ast0.StructUnionDef(_,_,_,_) | Ast0.EnumDef(_,_,_,_) | Ast0.TypeName(_) | Ast0.MetaType(_,_) -> - Ast.Type(None,rewrap t no_isos (base_typeC t)) - | Ast0.DisjType(_,types,_,_) -> Ast.DisjType(List.map typeC types) - | Ast0.OptType(ty) -> Ast.OptType(typeC ty) - | Ast0.UniqueType(ty) -> Ast.UniqueType(typeC ty)) - -and base_typeC t = + Ast.Type(allminus,None,rewrap t no_isos (base_typeC allminus t)) + | Ast0.DisjType(_,types,_,_) -> + Ast.DisjType(List.map (typeC allminus) types) + | Ast0.AsType(ty,asty) -> + Ast.AsType(typeC allminus ty,typeC allminus asty) + | Ast0.OptType(ty) -> Ast.OptType(typeC allminus ty) + | Ast0.UniqueType(ty) -> Ast.UniqueType(typeC allminus ty)) + +and base_typeC allminus t = match Ast0.unwrap t with Ast0.BaseType(ty,strings) -> Ast.BaseType(ty,List.map mcode strings) | Ast0.Signed(sgn,ty) -> - Ast.SignedT(mcode sgn, - get_option (function x -> rewrap_iso x (base_typeC x)) ty) - | Ast0.Pointer(ty,star) -> Ast.Pointer(typeC ty,mcode star) + Ast.SignedT + (mcode sgn, + get_option (function x -> rewrap_iso x (base_typeC allminus x)) ty) + | Ast0.Pointer(ty,star) -> Ast.Pointer(typeC allminus ty,mcode star) | Ast0.FunctionPointer(ty,lp1,star,rp1,lp2,params,rp2) -> Ast.FunctionPointer - (typeC ty,mcode lp1,mcode star,mcode rp1, + (typeC allminus ty,mcode lp1,mcode star,mcode rp1, mcode lp2,parameter_list params,mcode rp2) | Ast0.FunctionType(ret,lp,params,rp) -> let allminus = check_allminus.VT0.combiner_rec_typeC t in Ast.FunctionType - (allminus,get_option typeC ret,mcode lp, + (allminus,get_option (typeC allminus) ret,mcode lp, parameter_list params,mcode rp) | Ast0.Array(ty,lb,size,rb) -> - Ast.Array(typeC ty,mcode lb,get_option expression size,mcode rb) + Ast.Array(typeC allminus ty,mcode lb,get_option expression size, + mcode rb) | Ast0.EnumName(kind,name) -> Ast.EnumName(mcode kind,get_option ident name) | Ast0.EnumDef(ty,lb,ids,rb) -> let ids = add_exp_comma ids in - Ast.EnumDef(typeC ty,mcode lb,dots expression ids,mcode rb) + Ast.EnumDef(typeC allminus ty,mcode lb,dots expression ids,mcode rb) | Ast0.StructUnionName(kind,name) -> Ast.StructUnionName(mcode kind,get_option ident name) | Ast0.StructUnionDef(ty,lb,decls,rb) -> - Ast.StructUnionDef(typeC ty,mcode lb, + Ast.StructUnionDef(typeC allminus ty,mcode lb, dots declaration decls, mcode rb) | Ast0.TypeName(name) -> Ast.TypeName(mcode name) @@ -565,9 +599,12 @@ and declaration d = | Ast0.MetaField(name,_) -> Ast.MetaField(mcode name,unitary,false) | Ast0.MetaFieldList(name,lenname,_) -> Ast.MetaFieldList(mcode name,do_lenname lenname,unitary,false) + | Ast0.AsDecl(decl,asdecl) -> + Ast.AsDecl(declaration decl,declaration asdecl) | Ast0.Init(stg,ty,id,eq,ini,sem) -> + let allminus = check_allminus.VT0.combiner_rec_declaration d in let stg = get_option mcode stg in - let ty = typeC ty in + let ty = typeC allminus ty in let id = ident id in let eq = mcode eq in let ini = initialiser ini in @@ -580,13 +617,17 @@ and declaration d = Ast.UnInit(get_option mcode stg, rewrap ty (do_isos (Ast0.get_iso ty)) (Ast.Type - (None, + (allminus,None, rewrap ty no_isos (Ast.FunctionType - (allminus,get_option typeC tyx,mcode lp1, + (allminus,get_option (typeC allminus) tyx, + mcode lp1, parameter_list params,mcode rp1)))), ident id,mcode sem) - | _ -> Ast.UnInit(get_option mcode stg,typeC ty,ident id,mcode sem)) + | _ -> + let allminus = check_allminus.VT0.combiner_rec_declaration d in + Ast.UnInit(get_option mcode stg,typeC allminus ty,ident id, + mcode sem)) | Ast0.MacroDecl(name,lp,args,rp,sem) -> let name = ident name in let lp = mcode lp in @@ -594,12 +635,24 @@ and declaration d = let rp = mcode rp in let sem = mcode sem in Ast.MacroDecl(name,lp,args,rp,sem) - | Ast0.TyDecl(ty,sem) -> Ast.TyDecl(typeC ty,mcode sem) + | Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem) -> + let name = ident name in + let lp = mcode lp in + let args = dots expression args in + let rp = mcode rp in + let eq = mcode eq in + let ini = initialiser ini in + let sem = mcode sem in + Ast.MacroDeclInit(name,lp,args,rp,eq,ini,sem) + | Ast0.TyDecl(ty,sem) -> + let allminus = check_allminus.VT0.combiner_rec_declaration d in + Ast.TyDecl(typeC allminus ty,mcode sem) | Ast0.Typedef(stg,ty,id,sem) -> - let id = typeC id in + let allminus = check_allminus.VT0.combiner_rec_declaration d in + let id = typeC allminus id in (match Ast.unwrap id with - Ast.Type(None,id) -> (* only MetaType or Id *) - Ast.Typedef(mcode stg,typeC ty,id,mcode sem) + Ast.Type(_,None,id) -> (* only MetaType or Id *) + Ast.Typedef(mcode stg,typeC allminus ty,id,mcode sem) | _ -> failwith "bad typedef") | Ast0.DisjDecl(_,decls,_,_) -> Ast.DisjDecl(List.map declaration decls) | Ast0.Ddots(dots,whencode) -> @@ -662,6 +715,8 @@ and initialiser i = Ast0.MetaInit(name,_) -> Ast.MetaInit(mcode name,unitary,false) | Ast0.MetaInitList(name,lenname,_) -> Ast.MetaInitList(mcode name,do_lenname lenname,unitary,false) + | Ast0.AsInit(init,asinit) -> + Ast.AsInit(initialiser init,initialiser asinit) | Ast0.InitExpr(exp) -> Ast.InitExpr(expression exp) | Ast0.InitList(lb,initlist,rb,true) -> let initlist = add_init_comma initlist in @@ -699,8 +754,10 @@ and designator = function and parameterTypeDef p = rewrap p no_isos (match Ast0.unwrap p with - Ast0.VoidParam(ty) -> Ast.VoidParam(typeC ty) - | Ast0.Param(ty,id) -> Ast.Param(typeC ty,get_option ident id) + Ast0.VoidParam(ty) -> Ast.VoidParam(typeC false ty) + | Ast0.Param(ty,id) -> + let allminus = check_allminus.VT0.combiner_rec_parameter p in + Ast.Param(typeC allminus ty,get_option ident id) | Ast0.MetaParam(name,_) -> Ast.MetaParam(mcode name,unitary,false) | Ast0.MetaParamList(name,lenname,_) -> @@ -830,6 +887,8 @@ and statement s = | Ast0.MetaStmtList(name,_) -> Ast.Atomic(rewrap_rule_elem s (Ast.MetaStmtList(mcode name,unitary,false))) + | Ast0.AsStmt(stmt,asstmt) -> + Ast.AsStmt(statement seqible stmt,statement seqible asstmt) | Ast0.TopExp(exp) -> Ast.Atomic(rewrap_rule_elem s (Ast.TopExp(expression exp))) | Ast0.Exp(exp) -> @@ -837,7 +896,8 @@ and statement s = | Ast0.TopInit(init) -> Ast.Atomic(rewrap_rule_elem s (Ast.TopInit(initialiser init))) | Ast0.Ty(ty) -> - Ast.Atomic(rewrap_rule_elem s (Ast.Ty(typeC ty))) + let allminus = check_allminus.VT0.combiner_rec_statement s in + Ast.Atomic(rewrap_rule_elem s (Ast.Ty(typeC allminus ty))) | Ast0.Disj(_,rule_elem_dots_list,_,_) -> Ast.Disj(List.map (function x -> statement_dots seqible x) rule_elem_dots_list) @@ -1016,7 +1076,7 @@ and statement s = and fninfo = function Ast0.FStorage(stg) -> Ast.FStorage(mcode stg) - | Ast0.FType(ty) -> Ast.FType(typeC ty) + | Ast0.FType(ty) -> Ast.FType(typeC false ty) | Ast0.FInline(inline) -> Ast.FInline(mcode inline) | Ast0.FAttr(attr) -> Ast.FAttr(mcode attr) @@ -1060,7 +1120,7 @@ and anything = function | Ast0.ExprTag(d) -> Ast.ExpressionTag(expression d) | Ast0.ArgExprTag(d) | Ast0.TestExprTag(d) -> failwith "only in isos, not converted to ast" - | Ast0.TypeCTag(d) -> Ast.FullTypeTag(typeC d) + | Ast0.TypeCTag(d) -> Ast.FullTypeTag(typeC false d) | Ast0.ParamTag(d) -> Ast.ParamTag(parameterTypeDef d) | Ast0.InitTag(d) -> Ast.InitTag(initialiser d) | Ast0.DeclTag(d) -> Ast.DeclarationTag(declaration d) @@ -1071,6 +1131,7 @@ and anything = function | Ast0.IsoWhenTTag(_) -> failwith "not possible" | Ast0.IsoWhenFTag(_) -> failwith "not possible" | Ast0.MetaPosTag _ -> failwith "not possible" + | Ast0.HiddenVarTag _ -> failwith "not possible" (* --------------------------------------------------------------------- *) (* Function declaration *) diff --git a/parsing_cocci/ast0toast.mli b/parsing_cocci/ast0toast.mli index 6e03663..b45bd7b 100644 --- a/parsing_cocci/ast0toast.mli +++ b/parsing_cocci/ast0toast.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -41,7 +43,7 @@ val declaration_dots : Ast0_cocci.declaration Ast0_cocci.dots -> Ast_cocci.declaration Ast_cocci.dots val case_line : Ast0_cocci.case_line -> Ast_cocci.case_line -val typeC : Ast0_cocci.typeC -> Ast_cocci.fullType +val typeC : bool (*allminus*) -> Ast0_cocci.typeC -> Ast_cocci.fullType val declaration : Ast0_cocci.declaration -> Ast_cocci.declaration val parameterTypeDef : Ast0_cocci.parameterTypeDef -> Ast_cocci.parameterTypeDef diff --git a/parsing_cocci/ast_cocci.ml b/parsing_cocci/ast_cocci.ml index bf43265..e04ff2c 100644 --- a/parsing_cocci/ast_cocci.ml +++ b/parsing_cocci/ast_cocci.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -173,6 +175,7 @@ and base_expression = expression dots * string mcode (* ) *) | Assignment of expression * assignOp mcode * expression * bool (* true if it can match an initialization *) + | Sequence of expression * string mcode (* , *) * expression | CondExpr of expression * string mcode (* ? *) * expression option * string mcode (* : *) * expression | Postfix of expression * fixOp mcode @@ -203,6 +206,7 @@ and base_expression = Type_cocci.typeC list option * form * inherited | MetaExprList of meta_name mcode * listlen * keep_binding * inherited (* only in arg lists *) + | AsExpr of expression * expression (* as expr, always metavar *) | EComma of string mcode (* only in arg lists *) @@ -267,7 +271,9 @@ and constant = (* Types *) and base_fullType = - Type of const_vol mcode option * typeC + Type of bool (* true if all minus *) * + const_vol mcode option * typeC + | AsType of fullType * fullType (* as type, always metavar *) | DisjType of fullType list (* only after iso *) | OptType of fullType | UniqueType of fullType @@ -324,6 +330,9 @@ and base_declaration = | TyDecl of fullType * string mcode (* ; *) | MacroDecl of ident (* name *) * string mcode (* ( *) * expression dots * string mcode (* ) *) * string mcode (* ; *) + | MacroDeclInit of ident (* name *) * string mcode (* ( *) * + expression dots * string mcode (* ) *) * string mcode (*=*) * + initialiser * string mcode (* ; *) | Typedef of string mcode (*typedef*) * fullType * typeC (* either TypeName or metavar *) * string mcode (*;*) | DisjDecl of declaration list @@ -333,6 +342,7 @@ and base_declaration = | MetaDecl of meta_name mcode * keep_binding * inherited | MetaField of meta_name mcode * keep_binding * inherited | MetaFieldList of meta_name mcode * listlen * keep_binding * inherited + | AsDecl of declaration * declaration | OptDecl of declaration | UniqueDecl of declaration @@ -345,6 +355,7 @@ and declaration = base_declaration wrap and base_initialiser = MetaInit of meta_name mcode * keep_binding * inherited | MetaInitList of meta_name mcode * listlen * keep_binding * inherited + | AsInit of initialiser * initialiser (* as init, always metavar *) | InitExpr of expression | ArInitList of string mcode (*{*) * initialiser dots * string mcode (*}*) | StrInitList of bool (* true if all are - *) * @@ -502,7 +513,7 @@ and base_statement = | IfThen of rule_elem (* header *) * statement * end_info (* endif *) | IfThenElse of rule_elem (* header *) * statement * rule_elem (* else *) * statement * end_info (* endif *) - | While of rule_elem (* header *) * statement * end_info (*endwhile*) + | While of rule_elem (* header *) * statement * end_info(*endwhile*) | Do of rule_elem (* do *) * statement * rule_elem (* tail *) | For of rule_elem (* header *) * statement * end_info (*endfor*) | Iterator of rule_elem (* header *) * statement * end_info (*enditer*) @@ -517,6 +528,7 @@ and base_statement = | FunDecl of rule_elem (* header *) * rule_elem (* { *) * statement dots * rule_elem (* } *) | Define of rule_elem (* header *) * statement dots + | AsStmt of statement * statement (* as statement, always metavar *) | Dots of string mcode (* ... *) * (statement dots,statement) whencode list * dots_whencode list * dots_whencode list @@ -791,6 +803,20 @@ let make_term x = safe_for_multi_decls = false; iso_info = [] } +let make_inherited_term x inherited = + {node = x; + node_line = 0; + free_vars = []; + minus_free_vars = []; + fresh_vars = []; + inherited = inherited; + saved_witness = []; + bef_aft = NoDots; + pos_info = None; + true_if_test_exp = false; + safe_for_multi_decls = false; + iso_info = [] } + let make_meta_rule_elem s d (fvs,fresh,inh) = let rule = "" in {(make_term diff --git a/parsing_cocci/ast_cocci.mli b/parsing_cocci/ast_cocci.mli index 4749c04..0bf2fcd 100644 --- a/parsing_cocci/ast_cocci.mli +++ b/parsing_cocci/ast_cocci.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -158,6 +160,7 @@ and base_expression = | FunCall of expression * string mcode (* ( *) * expression dots * string mcode (* ) *) | Assignment of expression * assignOp mcode * expression * bool + | Sequence of expression * string mcode (* , *) * expression | CondExpr of expression * string mcode (* ? *) * expression option * string mcode (* : *) * expression | Postfix of expression * fixOp mcode @@ -188,6 +191,7 @@ and base_expression = Type_cocci.typeC list option * form * inherited | MetaExprList of meta_name mcode * listlen * keep_binding * inherited (* only in arg lists *) + | AsExpr of expression * expression (* as expr, always metavar *) | EComma of string mcode (* only in arg lists *) @@ -251,7 +255,9 @@ and constant = (* Types *) and base_fullType = - Type of const_vol mcode option * typeC + Type of bool (* true if all minus *) * + const_vol mcode option * typeC + | AsType of fullType * fullType (* as type, always metavar *) | DisjType of fullType list (* only after iso *) | OptType of fullType | UniqueType of fullType @@ -305,6 +311,9 @@ and base_declaration = | TyDecl of fullType * string mcode (* ; *) | MacroDecl of ident (* name *) * string mcode (* ( *) * expression dots * string mcode (* ) *) * string mcode (* ; *) + | MacroDeclInit of ident (* name *) * string mcode (* ( *) * + expression dots * string mcode (* ) *) * string mcode (*=*) * + initialiser * string mcode (* ; *) | Typedef of string mcode (*typedef*) * fullType * typeC * string mcode (*;*) | DisjDecl of declaration list | Ddots of string mcode (* ... *) * declaration option (* whencode *) @@ -312,6 +321,7 @@ and base_declaration = | MetaDecl of meta_name mcode * keep_binding * inherited | MetaField of meta_name mcode * keep_binding * inherited | MetaFieldList of meta_name mcode * listlen * keep_binding * inherited + | AsDecl of declaration * declaration | OptDecl of declaration | UniqueDecl of declaration @@ -324,6 +334,7 @@ and declaration = base_declaration wrap and base_initialiser = MetaInit of meta_name mcode * keep_binding * inherited | MetaInitList of meta_name mcode * listlen * keep_binding * inherited + | AsInit of initialiser * initialiser (* as init, always metavar *) | InitExpr of expression | ArInitList of string mcode (*{*) * initialiser dots * string mcode (*}*) | StrInitList of bool (* true if all are - *) * @@ -494,6 +505,7 @@ and base_statement = | FunDecl of rule_elem (* header *) * rule_elem (* { *) * statement dots * rule_elem (* } *) | Define of rule_elem (* header *) * statement dots + | AsStmt of statement * statement (* as statement, always metavar *) | Dots of string mcode (* ... *) * (statement dots,statement) whencode list * dots_whencode list * dots_whencode list @@ -684,6 +696,7 @@ val make_meta_decl : declaration val make_term : 'a -> 'a wrap +val make_inherited_term : 'a -> meta_name list (* inherited vars *) -> 'a wrap val make_mcode : 'a -> 'a mcode val equal_pos : fixpos -> fixpos -> bool diff --git a/parsing_cocci/check_meta.ml b/parsing_cocci/check_meta.ml index 1435fdf..2f0dd7c 100644 --- a/parsing_cocci/check_meta.ml +++ b/parsing_cocci/check_meta.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -140,6 +142,9 @@ let rec expression context old_metas table minus e = | Ast0.Assignment(left,op,right,_) -> expression context old_metas table minus left; expression ID old_metas table minus right + | Ast0.Sequence(left,op,right) -> + expression context old_metas table minus left; + expression ID old_metas table minus right | Ast0.CondExpr(exp1,why,exp2,colon,exp3) -> expression ID old_metas table minus exp1; get_opt (expression ID old_metas table minus) exp2; @@ -186,6 +191,7 @@ let rec expression context old_metas table minus e = check_table table minus lenname | Ast0.MetaExprList(name,_,_) -> check_table table minus name + | Ast0.AsExpr(exp,asexp) -> failwith "not generated yet" | Ast0.DisjExpr(_,exps,_,_) -> List.iter (expression context old_metas table minus) exps | Ast0.NestExpr(_,exp_dots,_,w,_) -> @@ -224,6 +230,7 @@ and typeC old_metas table minus t = get_opt (expression ID old_metas table minus) size | Ast0.MetaType(name,_) -> check_table table minus name + | Ast0.AsType(ty,asty) -> failwith "not generated yet" | Ast0.DisjType(_,types,_,_) -> List.iter (typeC old_metas table minus) types | Ast0.EnumName(en,Some id) -> ident GLOBAL old_metas table minus id @@ -252,11 +259,12 @@ and declaration context old_metas table minus d = check_table table minus lenname | Ast0.MetaFieldList(name,_,_) -> check_table table minus name + | Ast0.AsDecl(decl,asdecl) -> failwith "not generated yet" | Ast0.Init(stg,ty,id,eq,ini,sem) -> + typeC old_metas table minus ty; + ident context old_metas table minus id; (match Ast0.unwrap ini with Ast0.InitExpr exp -> - typeC old_metas table minus ty; - ident context old_metas table minus id; expression ID old_metas table minus exp | _ -> (* @@ -264,14 +272,18 @@ and declaration context old_metas table minus d = then failwith "complex initializer specification not allowed in - code" else*) - (typeC old_metas table minus ty; - ident context old_metas table minus id; - initialiser old_metas table minus ini)) + initialiser old_metas table minus ini) | Ast0.UnInit(stg,ty,id,sem) -> typeC old_metas table minus ty; ident context old_metas table minus id | Ast0.MacroDecl(name,lp,args,rp,sem) -> ident GLOBAL old_metas table minus name; dots (expression ID old_metas table minus) args + | Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem) -> + ident GLOBAL old_metas table minus name; + dots (expression ID old_metas table minus) args; + (match Ast0.unwrap ini with + Ast0.InitExpr exp -> expression ID old_metas table minus exp + | _ -> initialiser old_metas table minus ini) | Ast0.TyDecl(ty,sem) -> typeC old_metas table minus ty | Ast0.Typedef(stg,ty,id,sem) -> typeC old_metas table minus ty; @@ -295,6 +307,7 @@ and initialiser old_metas table minus ini = check_table table minus lenname | Ast0.MetaInitList(name,_,_) -> check_table table minus name + | Ast0.AsInit(ini,asini) -> failwith "not generated yet" | Ast0.InitExpr(exp) -> expression ID old_metas table minus exp | Ast0.InitList(lb,initlist,rb,ordered) -> dots (initialiser old_metas table minus) initlist @@ -379,6 +392,7 @@ and statement old_metas table minus s = | Ast0.ReturnExpr(ret,exp,sem) -> expression ID old_metas table minus exp | Ast0.MetaStmt(name,_) -> check_table table minus name | Ast0.MetaStmtList(name,_) -> check_table table minus name + | Ast0.AsStmt(stm,asstm) -> failwith "not generated yet" | Ast0.Exp(exp) -> expression ID old_metas table minus exp | Ast0.TopExp(exp) -> expression ID old_metas table minus exp | Ast0.Ty(ty) -> typeC old_metas table minus ty @@ -467,11 +481,19 @@ let rule old_metas table minus rules = (* --------------------------------------------------------------------- *) let positions table rules = - let mcode x = + let rec rmcode x = (* needed for type inference, nonpolymorphic *) List.iter - (function Ast0.MetaPos(name,constraints,_) -> - let pos = Ast0.unwrap_mcode name in - (find_loop table pos) := true) + (function var -> + let name = Ast0.meta_pos_name var in + (find_loop table (Ast0.unwrap_mcode name)) := true; + rmcode name) + (Ast0.get_pos x) in + let rec mcode x = + List.iter + (function var -> + let name = Ast0.meta_pos_name var in + (find_loop table (Ast0.unwrap_mcode name)) := true; + rmcode name) (Ast0.get_pos x) in let option_default = () in let bind x y = () in @@ -487,9 +509,13 @@ let positions table rules = let dup_positions rules = let mcode x = - List.map - (function Ast0.MetaPos(name,constraints,_) -> Ast0.unwrap_mcode name) - (Ast0.get_pos x) in + List.concat + (List.map + (function + Ast0.MetaPosTag(Ast0.MetaPos(name,constraints,_)) -> + [Ast0.unwrap_mcode name] + | _ -> []) + (Ast0.get_pos x)) in let option_default = [] in let bind x y = x@y in diff --git a/parsing_cocci/check_meta.mli b/parsing_cocci/check_meta.mli index 371dbb9..f0ff4f0 100644 --- a/parsing_cocci/check_meta.mli +++ b/parsing_cocci/check_meta.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/comm_assoc.ml b/parsing_cocci/comm_assoc.ml index bf505df..952f3a4 100644 --- a/parsing_cocci/comm_assoc.ml +++ b/parsing_cocci/comm_assoc.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/comm_assoc.mli b/parsing_cocci/comm_assoc.mli index 610e722..2b271df 100644 --- a/parsing_cocci/comm_assoc.mli +++ b/parsing_cocci/comm_assoc.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/command_line.ml b/parsing_cocci/command_line.ml index f28040f..e828fbe 100644 --- a/parsing_cocci/command_line.ml +++ b/parsing_cocci/command_line.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -157,14 +159,14 @@ let tokenize first = let command_line args = let info = - try Some (Common.split_when (function x -> x = "-sp") args) + try Some (Common.split_when (function x -> List.mem x ["-sp";"--sp"]) args) with Not_found -> None in match info with None -> args | Some(pre_args,sp,post_args) -> (match post_args with first::post_args -> - pre_args @ "-sp_file" :: + pre_args @ "--sp_file" :: (reparse (tokenize first)) :: post_args - | [] -> failwith "-sp needs an argument") + | [] -> failwith "--sp needs an argument") diff --git a/parsing_cocci/command_line.mli b/parsing_cocci/command_line.mli index 79fe9fd..083c0c4 100644 --- a/parsing_cocci/command_line.mli +++ b/parsing_cocci/command_line.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/compute_lines.ml b/parsing_cocci/compute_lines.ml index 4f6e3a2..ea6aa27 100644 --- a/parsing_cocci/compute_lines.ml +++ b/parsing_cocci/compute_lines.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -307,6 +309,11 @@ let rec expression e = let op = normal_mcode op in let right = expression right in mkres e (Ast0.Assignment(left,op,right,simple)) left right + | Ast0.Sequence(left,op,right) -> + let left = expression left in + let op = normal_mcode op in + let right = expression right in + mkres e (Ast0.Sequence(left,op,right)) left right | Ast0.CondExpr(exp1,why,exp2,colon,exp3) -> let exp1 = expression exp1 in let why = normal_mcode why in @@ -433,6 +440,7 @@ let rec expression e = | Ast0.UniqueExp(exp) -> let exp = expression exp in mkres e (Ast0.UniqueExp(exp)) exp exp + | Ast0.AsExpr _ -> failwith "not possible" and expression_dots x = dots is_exp_dots None expression x @@ -536,6 +544,7 @@ and typeC t = let ty = typeC ty in mkres t (Ast0.OptType(ty)) ty ty | Ast0.UniqueType(ty) -> let ty = typeC ty in mkres t (Ast0.UniqueType(ty)) ty ty + | Ast0.AsType _ -> failwith "not possible" (* --------------------------------------------------------------------- *) (* Variable declaration *) @@ -592,6 +601,16 @@ and declaration d = let rp = normal_mcode rp in let sem = normal_mcode sem in mkres d (Ast0.MacroDecl(name,lp,args,rp,sem)) name (promote_mcode sem) + | Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem) -> + let name = ident name in + let lp = normal_mcode lp in + let args = dots is_exp_dots (Some(promote_mcode lp)) expression args in + let rp = normal_mcode rp in + let eq = normal_mcode eq in + let ini = initialiser ini in + let sem = normal_mcode sem in + mkres d (Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem)) + name (promote_mcode sem) | Ast0.TyDecl(ty,sem) -> let ty = typeC ty in let sem = normal_mcode sem in @@ -617,6 +636,7 @@ and declaration d = | Ast0.UniqueDecl(decl) -> let decl = declaration decl in mkres d (Ast0.UniqueDecl(declaration decl)) decl decl + | Ast0.AsDecl _ -> failwith "not possible" (* --------------------------------------------------------------------- *) (* Initializer *) @@ -672,6 +692,7 @@ and initialiser i = | Ast0.UniqueIni(ini) -> let ini = initialiser ini in mkres i (Ast0.UniqueIni(ini)) ini ini + | Ast0.AsInit _ -> failwith "not possible" and designator = function Ast0.DesignatorField(dot,id) -> @@ -1062,7 +1083,8 @@ let rec statement s = | Ast0.OptStm(stm) -> let stm = statement stm in mkres s (Ast0.OptStm(stm)) stm stm | Ast0.UniqueStm(stm) -> - let stm = statement stm in mkres s (Ast0.UniqueStm(stm)) stm stm in + let stm = statement stm in mkres s (Ast0.UniqueStm(stm)) stm stm + | Ast0.AsStmt _ -> failwith "not possible" in Ast0.set_dots_bef_aft res (match Ast0.get_dots_bef_aft res with Ast0.NoDots -> Ast0.NoDots diff --git a/parsing_cocci/compute_lines.mli b/parsing_cocci/compute_lines.mli index 891bcc3..49fdec4 100644 --- a/parsing_cocci/compute_lines.mli +++ b/parsing_cocci/compute_lines.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/context_neg.ml b/parsing_cocci/context_neg.ml index ac47894..27b4e01 100644 --- a/parsing_cocci/context_neg.ml +++ b/parsing_cocci/context_neg.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -59,7 +61,8 @@ let set_mcodekind x mcodekind = | Ast0.IsoWhenTag(_) -> failwith "only within iso phase" | Ast0.IsoWhenTTag(_) -> failwith "only within iso phase" | Ast0.IsoWhenFTag(_) -> failwith "only within iso phase" - | Ast0.MetaPosTag(p) -> failwith "metapostag only within iso phase" + | Ast0.MetaPosTag(p) -> failwith "invisible at this stage" + | Ast0.HiddenVarTag(p) -> failwith "hiddenvar only within iso phase" let set_index x index = match x with @@ -83,7 +86,8 @@ let set_index x index = | Ast0.IsoWhenTag(_) -> failwith "only within iso phase" | Ast0.IsoWhenTTag(_) -> failwith "only within iso phase" | Ast0.IsoWhenFTag(_) -> failwith "only within iso phase" - | Ast0.MetaPosTag(p) -> failwith "metapostag only within iso phase" + | Ast0.MetaPosTag(p) -> failwith "invisible at this stage" + | Ast0.HiddenVarTag(p) -> failwith "hiddenvar only within iso phase" let get_index = function Ast0.DotsExprTag(d) -> Index.expression_dots d @@ -106,7 +110,8 @@ let get_index = function | Ast0.IsoWhenTag(_) -> failwith "only within iso phase" | Ast0.IsoWhenTTag(_) -> failwith "only within iso phase" | Ast0.IsoWhenFTag(_) -> failwith "only within iso phase" - | Ast0.MetaPosTag(p) -> failwith "metapostag only within iso phase" + | Ast0.MetaPosTag(p) -> failwith "invisible at this stage" + | Ast0.HiddenVarTag(p) -> failwith "hiddenvar only within iso phase" (* --------------------------------------------------------------------- *) (* Collect the line numbers of the plus code. This is used for disjunctions. @@ -424,7 +429,8 @@ let classify is_minus all_marked table code = | Ast0.Stars(dots,whencode) -> k (Ast0.rewrap s (Ast0.Stars(dots,[]))) | Ast0.Disj(starter,statement_dots_list,_,ender) -> - disj_cases s starter statement_dots_list r.VT0.combiner_rec_statement_dots + disj_cases s starter statement_dots_list + r.VT0.combiner_rec_statement_dots ender (* cases for everything with extra mcode *) | Ast0.FunDecl((info,bef),_,_,_,_,_,_,_,_) @@ -500,6 +506,8 @@ let rec equal_expression e1 e2 = equal_mcode lp1 lp2 && equal_mcode rp1 rp2 | (Ast0.Assignment(_,op1,_,_),Ast0.Assignment(_,op2,_,_)) -> equal_mcode op1 op2 + | (Ast0.Sequence(_,op1,_),Ast0.Sequence(_,op2,_)) -> + equal_mcode op1 op2 | (Ast0.CondExpr(_,why1,_,colon1,_),Ast0.CondExpr(_,why2,_,colon2,_)) -> equal_mcode why1 why2 && equal_mcode colon1 colon2 | (Ast0.Postfix(_,op1),Ast0.Postfix(_,op2)) -> equal_mcode op1 op2 @@ -587,8 +595,12 @@ let equal_declaration d1 d2 = equal_option stg1 stg2 && equal_mcode eq1 eq2 && equal_mcode sem1 sem2 | (Ast0.UnInit(stg1,_,_,sem1),Ast0.UnInit(stg2,_,_,sem2)) -> equal_option stg1 stg2 && equal_mcode sem1 sem2 - | (Ast0.MacroDecl(nm1,lp1,_,rp1,sem1),Ast0.MacroDecl(nm2,lp2,_,rp2,sem2)) -> + | (Ast0.MacroDecl(nm1,lp1,_,rp1,sem1),Ast0.MacroDecl(nm2,lp2,_,rp2,sem2))-> equal_mcode lp1 lp2 && equal_mcode rp1 rp2 && equal_mcode sem1 sem2 + | (Ast0.MacroDeclInit(nm1,lp1,_,rp1,eq1,_,sem1), + Ast0.MacroDeclInit(nm2,lp2,_,rp2,eq2,_,sem2))-> + equal_mcode lp1 lp2 && equal_mcode rp1 rp2 && equal_mcode eq1 eq2 + && equal_mcode sem1 sem2 | (Ast0.TyDecl(_,sem1),Ast0.TyDecl(_,sem2)) -> equal_mcode sem1 sem2 | (Ast0.Ddots(dots1,_),Ast0.Ddots(dots2,_)) -> equal_mcode dots1 dots2 | (Ast0.OptDecl(_),Ast0.OptDecl(_)) -> true diff --git a/parsing_cocci/context_neg.mli b/parsing_cocci/context_neg.mli index da1f6c5..d304c47 100644 --- a/parsing_cocci/context_neg.mli +++ b/parsing_cocci/context_neg.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/data.ml b/parsing_cocci/data.ml index f61a5fb..674b183 100644 --- a/parsing_cocci/data.ml +++ b/parsing_cocci/data.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -38,7 +40,7 @@ type clt = line_type * int * int * int * int (* starting spaces *) * (Ast_cocci.added_string * Ast0.position_info) list (* code before *) * (Ast_cocci.added_string * Ast0.position_info) list (* code after *) * - Ast0.meta_pos list (* position variable, minus only *) + Ast0.anything list (* position variable, minus only *) (* ---------------------------------------------------------------------- *) diff --git a/parsing_cocci/data.mli b/parsing_cocci/data.mli index 41de420..85cd346 100644 --- a/parsing_cocci/data.mli +++ b/parsing_cocci/data.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -35,7 +37,7 @@ type clt = line_type * int * int * int * int (* starting spaces *) * (Ast_cocci.added_string * Ast0_cocci.position_info) list (*code before*) * (Ast_cocci.added_string * Ast0_cocci.position_info) list (*code after *) * - Ast0_cocci.meta_pos list (* position variable, minus only *) + Ast0_cocci.anything list (* position variable, minus only *) (* ---------------------------------------------------------------------- *) diff --git a/parsing_cocci/disjdistr.ml b/parsing_cocci/disjdistr.ml index 7223fb8..ce7e15d 100644 --- a/parsing_cocci/disjdistr.ml +++ b/parsing_cocci/disjdistr.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -61,9 +63,12 @@ let disjdots f d = let rec disjty ft = match Ast.unwrap ft with - Ast.Type(cv,ty) -> + Ast.Type(allminus,cv,ty) -> let ty = disjtypeC ty in - List.map (function ty -> Ast.rewrap ft (Ast.Type(cv,ty))) ty + List.map (function ty -> Ast.rewrap ft (Ast.Type(allminus,cv,ty))) ty + | Ast.AsType(ty,asty) -> (* as ty doesn't contain disj *) + let ty = disjty ty in + List.map (function ty -> Ast.rewrap ft (Ast.AsType(ty,asty))) ty | Ast.DisjType(types) -> List.concat (List.map disjty types) | Ast.OptType(ty) -> let ty = disjty ty in @@ -127,6 +132,10 @@ and disjexp e = disjmult2 (disjexp left) (disjexp right) (function left -> function right -> Ast.rewrap e (Ast.Assignment(left,op,right,simple))) + | Ast.Sequence(left,op,right) -> + disjmult2 (disjexp left) (disjexp right) + (function left -> function right -> + Ast.rewrap e (Ast.Sequence(left,op,right))) | Ast.CondExpr(exp1,why,Some exp2,colon,exp3) -> let res = disjmult disjexp [exp1;exp2;exp3] in List.map @@ -190,6 +199,9 @@ and disjexp e = function exp -> Ast.rewrap e (Ast.Constructor(lp,ty,rp,init))) | Ast.MetaErr(_,_,_,_) | Ast.MetaExpr(_,_,_,_,_,_) | Ast.MetaExprList(_,_,_,_) | Ast.EComma(_) -> [e] + | Ast.AsExpr(exp,asexp) -> (* as exp doesn't contain disj *) + let exp = disjexp exp in + List.map (function exp -> Ast.rewrap e (Ast.AsExpr(exp,asexp))) exp | Ast.DisjExpr(exp_list) -> List.concat (List.map disjexp exp_list) | Ast.NestExpr(starter,expr_dots,ender,whencode,multi) -> (* not sure what to do here, so ambiguities still possible *) @@ -220,6 +232,9 @@ and disjparam p = and disjini i = match Ast.unwrap i with Ast.MetaInit(_,_,_) | Ast.MetaInitList(_,_,_,_) -> [i] + | Ast.AsInit(ini,asini) -> + let ini = disjini ini in + List.map (function ini -> Ast.rewrap i (Ast.AsInit(ini,asini))) ini | Ast.InitExpr(exp) -> let exp = disjexp exp in List.map (function exp -> Ast.rewrap i (Ast.InitExpr(exp))) exp @@ -267,6 +282,9 @@ and disjdecl d = match Ast.unwrap d with Ast.MetaDecl(_,_,_) | Ast.MetaField(_,_,_) | Ast.MetaFieldList(_,_,_,_) -> [d] + | Ast.AsDecl(decl,asdecl) -> + let decl = disjdecl decl in + List.map (function decl -> Ast.rewrap d (Ast.AsDecl(decl,asdecl))) decl | Ast.Init(stg,ty,id,eq,ini,sem) -> disjmult2 (disjty ty) (disjini ini) (function ty -> function ini -> @@ -278,6 +296,10 @@ and disjdecl d = List.map (function args -> Ast.rewrap d (Ast.MacroDecl(name,lp,args,rp,sem))) (disjdots disjexp args) + | Ast.MacroDeclInit(name,lp,args,rp,eq,ini,sem) -> + disjmult2 (disjdots disjexp args) (disjini ini) + (function args -> function ini -> + Ast.rewrap d (Ast.MacroDeclInit(name,lp,args,rp,eq,ini,sem))) | Ast.TyDecl(ty,sem) -> let ty = disjty ty in List.map (function ty -> Ast.rewrap d (Ast.TyDecl(ty,sem))) ty diff --git a/parsing_cocci/disjdistr.mli b/parsing_cocci/disjdistr.mli index cf420d0..82f2a45 100644 --- a/parsing_cocci/disjdistr.mli +++ b/parsing_cocci/disjdistr.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/flag_parsing_cocci.ml b/parsing_cocci/flag_parsing_cocci.ml index 942e4e0..b824e26 100644 --- a/parsing_cocci/flag_parsing_cocci.ml +++ b/parsing_cocci/flag_parsing_cocci.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/free_vars.ml b/parsing_cocci/free_vars.ml index 77c294e..995339c 100644 --- a/parsing_cocci/free_vars.ml +++ b/parsing_cocci/free_vars.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/free_vars.mli b/parsing_cocci/free_vars.mli index d7fd980..fecda61 100644 --- a/parsing_cocci/free_vars.mli +++ b/parsing_cocci/free_vars.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/function_prototypes.ml b/parsing_cocci/function_prototypes.ml index 257e0ca..3f42d37 100644 --- a/parsing_cocci/function_prototypes.ml +++ b/parsing_cocci/function_prototypes.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/function_prototypes.mli b/parsing_cocci/function_prototypes.mli index 363db5c..d1f3498 100644 --- a/parsing_cocci/function_prototypes.mli +++ b/parsing_cocci/function_prototypes.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/get_constants.ml b/parsing_cocci/get_constants.ml index 3864d91..31a479f 100644 --- a/parsing_cocci/get_constants.ml +++ b/parsing_cocci/get_constants.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/get_constants.mli b/parsing_cocci/get_constants.mli index 713a368..11f1467 100644 --- a/parsing_cocci/get_constants.mli +++ b/parsing_cocci/get_constants.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/get_constants2.ml b/parsing_cocci/get_constants2.ml index 250f95e..4b7cb1a 100644 --- a/parsing_cocci/get_constants2.ml +++ b/parsing_cocci/get_constants2.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/get_constants2.mli b/parsing_cocci/get_constants2.mli index 02ba70b..19a19ca 100644 --- a/parsing_cocci/get_constants2.mli +++ b/parsing_cocci/get_constants2.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/get_metas.ml b/parsing_cocci/get_metas.ml new file mode 100644 index 0000000..cda51ab --- /dev/null +++ b/parsing_cocci/get_metas.ml @@ -0,0 +1,840 @@ +(* + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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. + *) + + +(* --------------------------------------------------------------------- *) +(* creates AsExpr, etc *) +(* @ attached metavariables can only be associated with positions, so nothing +to do for them *) + +module Ast = Ast_cocci +module Ast0 = Ast0_cocci + +let map_split f l = List.split(List.map f l) + +let rewrap x (n,e) = (n,Ast0.rewrap x e) + +let mcode x = + let nonpos l = + List.filter (function Ast0.MetaPosTag _ -> false | _ -> true) l in + (nonpos(Ast0.get_pos x),x) + +let option_default = [] + +let bind l1 l2 = + let oldnames = List.map Ast0.meta_pos_name l2 in + List.fold_left + (function prev -> function e1 -> + if List.mem (Ast0.meta_pos_name e1) oldnames then prev else e1::prev) + l2 l1 + +let multibind l = + let rec loop = function + [] -> option_default + | [x] -> x + | x::xs -> bind x (loop xs) in + loop l + +let map_split_bind f l = + let (n,e) = List.split(List.map f l) in (multibind n,e) + +let get_option f = function + Some x -> let (n,e) = f x in (n,Some e) + | None -> (option_default,None) + +let do_disj starter lst mids ender processor rebuilder = + let (starter_n,starter) = mcode starter in + let (lst_n,lst) = map_split processor lst in + let (mids_n,mids) = map_split mcode mids in + let (ender_n,ender) = mcode ender in + (multibind + [starter_n;List.hd lst_n; + multibind (List.map2 bind mids_n (List.tl lst_n));ender_n], + rebuilder starter lst mids ender) + +let dots fn d = + rewrap d + (match Ast0.unwrap d with + Ast0.DOTS(l) -> + let (n,l) = map_split_bind fn l in (n, Ast0.DOTS(l)) + | Ast0.CIRCLES(l) -> + let (n,l) = map_split_bind fn l in (n, Ast0.CIRCLES(l)) + | Ast0.STARS(l) -> + let (n,l) = map_split_bind fn l in (n, Ast0.STARS(l))) + +let rec ident i = + rewrap i + (match Ast0.unwrap i with + Ast0.Id(name) -> + let (n,name) = mcode name in (n,Ast0.Id(name)) + | Ast0.MetaId(name,constraints,seed,pure) -> + let (n,name) = mcode name in + (n,Ast0.MetaId(name,constraints,seed,pure)) + | Ast0.MetaFunc(name,constraints,pure) -> + let (n,name) = mcode name in + (n,Ast0.MetaFunc(name,constraints,pure)) + | Ast0.MetaLocalFunc(name,constraints,pure) -> + let (n,name) = mcode name in + (n,Ast0.MetaLocalFunc(name,constraints,pure)) + | Ast0.DisjId(starter,id_list,mids,ender) -> + do_disj starter id_list mids ender ident + (fun starter id_list mids ender -> + Ast0.DisjId(starter,id_list,mids,ender)) + | Ast0.OptIdent(id) -> + let (n,id) = ident id in (n,Ast0.OptIdent(id)) + | Ast0.UniqueIdent(id) -> + let (n,id) = ident id in (n,Ast0.UniqueIdent(id))) + +and expression e = + let (metas,e) = + rewrap e + (match Ast0.unwrap e with + Ast0.Ident(id) -> + let (n,id) = ident id in (n,Ast0.Ident(id)) + | Ast0.Constant(const) -> + let (n,const) = mcode const in (n,Ast0.Constant(const)) + | Ast0.FunCall(fn,lp,args,rp) -> + let (fn_n,fn) = expression fn in + let (lp_n,lp) = mcode lp in + let (args_n,args) = dots expression args in + let (rp_n,rp) = mcode rp in + (multibind [fn_n;lp_n;args_n;rp_n], Ast0.FunCall(fn,lp,args,rp)) + | Ast0.Assignment(left,op,right,simple) -> + let (left_n,left) = expression left in + let (op_n,op) = mcode op in + let (right_n,right) = expression right in + (multibind [left_n;op_n;right_n], + Ast0.Assignment(left,op,right,simple)) + | Ast0.Sequence(left,op,right) -> + let (left_n,left) = expression left in + let (op_n,op) = mcode op in + let (right_n,right) = expression right in + (multibind [left_n;op_n;right_n], + Ast0.Sequence(left,op,right)) + | Ast0.CondExpr(exp1,why,exp2,colon,exp3) -> + let (exp1_n,exp1) = expression exp1 in + let (why_n,why) = mcode why in + let (exp2_n,exp2) = get_option expression exp2 in + let (colon_n,colon) = mcode colon in + let (exp3_n,exp3) = expression exp3 in + (multibind [exp1_n;why_n;exp2_n;colon_n;exp3_n], + Ast0.CondExpr(exp1,why,exp2,colon,exp3)) + | Ast0.Postfix(exp,op) -> + let (exp_n,exp) = expression exp in + let (op_n,op) = mcode op in + (bind exp_n op_n, Ast0.Postfix(exp,op)) + | Ast0.Infix(exp,op) -> + let (exp_n,exp) = expression exp in + let (op_n,op) = mcode op in + (bind op_n exp_n, Ast0.Infix(exp,op)) + | Ast0.Unary(exp,op) -> + let (exp_n,exp) = expression exp in + let (op_n,op) = mcode op in + (bind op_n exp_n, Ast0.Unary(exp,op)) + | Ast0.Binary(left,op,right) -> + let (left_n,left) = expression left in + let (op_n,op) = mcode op in + let (right_n,right) = expression right in + (multibind [left_n;op_n;right_n], Ast0.Binary(left,op,right)) + | Ast0.Nested(left,op,right) -> + let (left_n,left) = expression left in + let (op_n,op) = mcode op in + let (right_n,right) = expression right in + (multibind [left_n;op_n;right_n], Ast0.Nested(left,op,right)) + | Ast0.Paren(lp,exp,rp) -> + let (lp_n,lp) = mcode lp in + let (exp_n,exp) = expression exp in + let (rp_n,rp) = mcode rp in + (multibind [lp_n;exp_n;rp_n], Ast0.Paren(lp,exp,rp)) + | Ast0.ArrayAccess(exp1,lb,exp2,rb) -> + let (exp1_n,exp1) = expression exp1 in + let (lb_n,lb) = mcode lb in + let (exp2_n,exp2) = expression exp2 in + let (rb_n,rb) = mcode rb in + (multibind [exp1_n;lb_n;exp2_n;rb_n], + Ast0.ArrayAccess(exp1,lb,exp2,rb)) + | Ast0.RecordAccess(exp,pt,field) -> + let (exp_n,exp) = expression exp in + let (pt_n,pt) = mcode pt in + let (field_n,field) = ident field in + (multibind [exp_n;pt_n;field_n], Ast0.RecordAccess(exp,pt,field)) + | Ast0.RecordPtAccess(exp,ar,field) -> + let (exp_n,exp) = expression exp in + let (ar_n,ar) = mcode ar in + let (field_n,field) = ident field in + (multibind [exp_n;ar_n;field_n], Ast0.RecordPtAccess(exp,ar,field)) + | Ast0.Cast(lp,ty,rp,exp) -> + let (lp_n,lp) = mcode lp in + let (ty_n,ty) = typeC ty in + let (rp_n,rp) = mcode rp in + let (exp_n,exp) = expression exp in + (multibind [lp_n;ty_n;rp_n;exp_n], Ast0.Cast(lp,ty,rp,exp)) + | Ast0.SizeOfExpr(szf,exp) -> + let (szf_n,szf) = mcode szf in + let (exp_n,exp) = expression exp in + (multibind [szf_n;exp_n],Ast0.SizeOfExpr(szf,exp)) + | Ast0.SizeOfType(szf,lp,ty,rp) -> + let (szf_n,szf) = mcode szf in + let (lp_n,lp) = mcode lp in + let (ty_n,ty) = typeC ty in + let (rp_n,rp) = mcode rp in + (multibind [szf_n;lp_n;ty_n;rp_n], Ast0.SizeOfType(szf,lp,ty,rp)) + | Ast0.TypeExp(ty) -> + let (ty_n,ty) = typeC ty in + (ty_n,Ast0.TypeExp(ty)) + | Ast0.Constructor(lp,ty,rp,init) -> + let (lp_n,lp) = mcode lp in + let (ty_n,ty) = typeC ty in + let (rp_n,rp) = mcode rp in + let (init_n,init) = initialiser init in + (multibind [lp_n;ty_n;rp_n;init_n], Ast0.Constructor(lp,ty,rp,init)) + | Ast0.MetaErr(name,constraints,pure) -> + let (name_n,name) = mcode name in + (name_n,Ast0.MetaErr(name,constraints,pure)) + | Ast0.MetaExpr(name,constraints,ty,form,pure) -> + let (name_n,name) = mcode name in + (name_n,Ast0.MetaExpr(name,constraints,ty,form,pure)) + | Ast0.MetaExprList(name,lenname,pure) -> + let (name_n,name) = mcode name in + (name_n,Ast0.MetaExprList(name,lenname,pure)) + | Ast0.AsExpr _ -> failwith "not possible" + | Ast0.EComma(cm) -> + let (cm_n,cm) = mcode cm in (cm_n,Ast0.EComma(cm)) + | Ast0.DisjExpr(starter,expr_list,mids,ender) -> + do_disj starter expr_list mids ender expression + (fun starter expr_list mids ender -> + Ast0.DisjExpr(starter,expr_list,mids,ender)) + | Ast0.NestExpr(starter,expr_dots,ender,whencode,multi) -> + let (starter_n,starter) = mcode starter in + let (expr_dots_n,expr_dots) = dots expression expr_dots in + let (ender_n,ender) = mcode ender in + let (whencode_n,whencode) = get_option expression whencode in + (multibind [starter_n;expr_dots_n;ender_n;whencode_n], + Ast0.NestExpr(starter,expr_dots,ender,whencode,multi)) + | Ast0.Edots(dots,whencode) -> + let (dots_n,dots) = mcode dots in + let (whencode_n,whencode) = get_option expression whencode in + (bind dots_n whencode_n,Ast0.Edots(dots,whencode)) + | Ast0.Ecircles(dots,whencode) -> + let (dots_n,dots) = mcode dots in + let (whencode_n,whencode) = get_option expression whencode in + (bind dots_n whencode_n,Ast0.Ecircles(dots,whencode)) + | Ast0.Estars(dots,whencode) -> + let (dots_n,dots) = mcode dots in + let (whencode_n,whencode) = get_option expression whencode in + (bind dots_n whencode_n,Ast0.Estars(dots,whencode)) + | Ast0.OptExp(exp) -> + let (exp_n,exp) = expression exp in + (exp_n,Ast0.OptExp(exp)) + | Ast0.UniqueExp(exp) -> + let (exp_n,exp) = expression exp in + (exp_n,Ast0.UniqueExp(exp))) in + List.fold_left + (function (other_metas,exp) -> + function + Ast0.ExprTag(exp_meta) -> + (other_metas,Ast0.rewrap exp (Ast0.AsExpr(exp,exp_meta))) + | x -> (x::other_metas,exp)) + ([],e) metas + +and typeC t = + let (metas,t) = + rewrap t + (match Ast0.unwrap t with + Ast0.ConstVol(cv,ty) -> + let (cv_n,cv) = mcode cv in + let (ty_n,ty) = typeC ty in + (bind cv_n ty_n, Ast0.ConstVol(cv,ty)) + | Ast0.BaseType(ty,strings) -> + let (strings_n,strings) = map_split_bind mcode strings in + (strings_n, Ast0.BaseType(ty,strings)) + | Ast0.Signed(sign,ty) -> + let (sign_n,sign) = mcode sign in + let (ty_n,ty) = get_option typeC ty in + (bind sign_n ty_n, Ast0.Signed(sign,ty)) + | Ast0.Pointer(ty,star) -> + let (ty_n,ty) = typeC ty in + let (star_n,star) = mcode star in + (bind ty_n star_n, Ast0.Pointer(ty,star)) + | Ast0.FunctionPointer(ty,lp1,star,rp1,lp2,params,rp2) -> + function_pointer (ty,lp1,star,rp1,lp2,params,rp2) [] + | Ast0.FunctionType(ty,lp1,params,rp1) -> + function_type (ty,lp1,params,rp1) [] + | Ast0.Array(ty,lb,size,rb) -> array_type (ty,lb,size,rb) [] + | Ast0.EnumName(kind,name) -> + let (kind_n,kind) = mcode kind in + let (name_n,name) = get_option ident name in + (bind kind_n name_n, Ast0.EnumName(kind,name)) + | Ast0.EnumDef(ty,lb,ids,rb) -> + let (ty_n,ty) = typeC ty in + let (lb_n,lb) = mcode lb in + let (ids_n,ids) = dots expression ids in + let (rb_n,rb) = mcode rb in + (multibind [ty_n;lb_n;ids_n;rb_n], Ast0.EnumDef(ty,lb,ids,rb)) + | Ast0.StructUnionName(kind,name) -> + let (kind_n,kind) = mcode kind in + let (name_n,name) = get_option ident name in + (bind kind_n name_n, Ast0.StructUnionName(kind,name)) + | Ast0.StructUnionDef(ty,lb,decls,rb) -> + let (ty_n,ty) = typeC ty in + let (lb_n,lb) = mcode lb in + let (decls_n,decls) = dots declaration decls in + let (rb_n,rb) = mcode rb in + (multibind [ty_n;lb_n;decls_n;rb_n], + Ast0.StructUnionDef(ty,lb,decls,rb)) + | Ast0.TypeName(name) -> + let (name_n,name) = mcode name in + (name_n,Ast0.TypeName(name)) + | Ast0.MetaType(name,pure) -> + let (name_n,name) = mcode name in + (name_n,Ast0.MetaType(name,pure)) + | Ast0.AsType _ -> failwith "not possible" + | Ast0.DisjType(starter,types,mids,ender) -> + do_disj starter types mids ender typeC + (fun starter types mids ender -> + Ast0.DisjType(starter,types,mids,ender)) + | Ast0.OptType(ty) -> + let (ty_n,ty) = typeC ty in (ty_n, Ast0.OptType(ty)) + | Ast0.UniqueType(ty) -> + let (ty_n,ty) = typeC ty in (ty_n, Ast0.UniqueType(ty))) in + List.fold_left + (function (other_metas,ty) -> + function + Ast0.TypeCTag(ty_meta) -> + (other_metas,Ast0.rewrap ty (Ast0.AsType(ty,ty_meta))) + | x -> (x::other_metas,ty)) + ([],t) metas + +and function_pointer (ty,lp1,star,rp1,lp2,params,rp2) extra = + let (ty_n,ty) = typeC ty in + let (lp1_n,lp1) = mcode lp1 in + let (star_n,star) = mcode star in + let (rp1_n,rp1) = mcode rp1 in + let (lp2_n,lp2) = mcode lp2 in + let (params_n,params) = dots parameterTypeDef params in + let (rp2_n,rp2) = mcode rp2 in + (* have to put the treatment of the identifier into the right position *) + (multibind ([ty_n;lp1_n;star_n] @ extra @ [rp1_n;lp2_n;params_n;rp2_n]), + Ast0.FunctionPointer(ty,lp1,star,rp1,lp2,params,rp2)) +and function_type (ty,lp1,params,rp1) extra = + let (ty_n,ty) = get_option typeC ty in + let (lp1_n,lp1) = mcode lp1 in + let (params_n,params) = dots parameterTypeDef params in + let (rp1_n,rp1) = mcode rp1 in + (* have to put the treatment of the identifier into the right position *) + (multibind (ty_n :: extra @ [lp1_n;params_n;rp1_n]), + Ast0.FunctionType(ty,lp1,params,rp1)) +and array_type (ty,lb,size,rb) extra = + let (ty_n,ty) = typeC ty in + let (lb_n,lb) = mcode lb in + let (size_n,size) = get_option expression size in + let (rb_n,rb) = mcode rb in + (multibind (ty_n :: extra @ [lb_n;size_n;rb_n]), + Ast0.Array(ty,lb,size,rb)) + +and named_type ty id = + let (id_n,id) = ident id in + match Ast0.unwrap ty with + Ast0.FunctionPointer(rty,lp1,star,rp1,lp2,params,rp2) -> + let tyres = + function_pointer (rty,lp1,star,rp1,lp2,params,rp2) [id_n] in + (rewrap ty tyres, id) + | Ast0.FunctionType(rty,lp1,params,rp1) -> + let tyres = function_type (rty,lp1,params,rp1) [id_n] in + (rewrap ty tyres, id) + | Ast0.Array(rty,lb,size,rb) -> + let tyres = array_type (rty,lb,size,rb) [id_n] in + (rewrap ty tyres, id) + | _ -> let (ty_n,ty) = typeC ty in ((bind ty_n id_n, ty), id) + +and declaration d = + let (metas,d) = + rewrap d + (match Ast0.unwrap d with + Ast0.MetaDecl(name,pure) -> + let (n,name) = mcode name in + (n,Ast0.MetaDecl(name,pure)) + | Ast0.MetaField(name,pure) -> + let (n,name) = mcode name in + (n,Ast0.MetaField(name,pure)) + | Ast0.MetaFieldList(name,lenname,pure) -> + let (n,name) = mcode name in + (n,Ast0.MetaFieldList(name,lenname,pure)) + | Ast0.AsDecl _ -> failwith "not possible" + | Ast0.Init(stg,ty,id,eq,ini,sem) -> + let (stg_n,stg) = get_option mcode stg in + let ((ty_id_n,ty),id) = named_type ty id in + let (eq_n,eq) = mcode eq in + let (ini_n,ini) = initialiser ini in + let (sem_n,sem) = mcode sem in + (multibind [stg_n;ty_id_n;eq_n;ini_n;sem_n], + Ast0.Init(stg,ty,id,eq,ini,sem)) + | Ast0.UnInit(stg,ty,id,sem) -> + let (stg_n,stg) = get_option mcode stg in + let ((ty_id_n,ty),id) = named_type ty id in + let (sem_n,sem) = mcode sem in + (multibind [stg_n;ty_id_n;sem_n], Ast0.UnInit(stg,ty,id,sem)) + | Ast0.MacroDecl(name,lp,args,rp,sem) -> + let (name_n,name) = ident name in + let (lp_n,lp) = mcode lp in + let (args_n,args) = dots expression args in + let (rp_n,rp) = mcode rp in + let (sem_n,sem) = mcode sem in + (multibind [name_n;lp_n;args_n;rp_n;sem_n], + Ast0.MacroDecl(name,lp,args,rp,sem)) + | Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem) -> + let (name_n,name) = ident name in + let (lp_n,lp) = mcode lp in + let (args_n,args) = dots expression args in + let (rp_n,rp) = mcode rp in + let (eq_n,eq) = mcode eq in + let (ini_n,ini) = initialiser ini in + let (sem_n,sem) = mcode sem in + (multibind [name_n;lp_n;args_n;rp_n;eq_n;ini_n;sem_n], + Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem)) + | Ast0.TyDecl(ty,sem) -> + let (ty_n,ty) = typeC ty in + let (sem_n,sem) = mcode sem in + (bind ty_n sem_n, Ast0.TyDecl(ty,sem)) + | Ast0.Typedef(stg,ty,id,sem) -> + let (stg_n,stg) = mcode stg in + let (ty_n,ty) = typeC ty in + let (id_n,id) = typeC id in + let (sem_n,sem) = mcode sem in + (multibind [stg_n;ty_n;id_n;sem_n], Ast0.Typedef(stg,ty,id,sem)) + | Ast0.DisjDecl(starter,decls,mids,ender) -> + do_disj starter decls mids ender declaration + (fun starter decls mids ender -> + Ast0.DisjDecl(starter,decls,mids,ender)) + | Ast0.Ddots(dots,whencode) -> + let (dots_n,dots) = mcode dots in + let (whencode_n,whencode) = get_option declaration whencode in + (bind dots_n whencode_n, Ast0.Ddots(dots,whencode)) + | Ast0.OptDecl(decl) -> + let (n,decl) = declaration decl in (n,Ast0.OptDecl(decl)) + | Ast0.UniqueDecl(decl) -> + let (n,decl) = declaration decl in (n,Ast0.UniqueDecl(decl))) in + List.fold_left + (function (other_metas,decl) -> + function + Ast0.DeclTag(decl_meta) -> + (other_metas,Ast0.rewrap decl (Ast0.AsDecl(decl,decl_meta))) + | x -> (x::other_metas,decl)) + ([],d) metas + +and initialiser i = + let (metas,i) = + rewrap i + (match Ast0.unwrap i with + Ast0.MetaInit(name,pure) -> + let (name_n,name) = mcode name in + (name_n,Ast0.MetaInit(name,pure)) + | Ast0.MetaInitList(name,lenname,pure) -> + let (name_n,name) = mcode name in + (name_n,Ast0.MetaInitList(name,lenname,pure)) + | Ast0.AsInit _ -> failwith "not possible" + | Ast0.InitExpr(exp) -> + let (exp_n,exp) = expression exp in + (exp_n,Ast0.InitExpr(exp)) + | Ast0.InitList(lb,initlist,rb,ordered) -> + let (lb_n,lb) = mcode lb in + let (initlist_n,initlist) = dots initialiser initlist in + let (rb_n,rb) = mcode rb in + (multibind [lb_n;initlist_n;rb_n], + Ast0.InitList(lb,initlist,rb,ordered)) + | Ast0.InitGccExt(designators,eq,ini) -> + let (dn,designators) = map_split_bind designator designators in + let (eq_n,eq) = mcode eq in + let (ini_n,ini) = initialiser ini in + (multibind [dn;eq_n;ini_n], Ast0.InitGccExt(designators,eq,ini)) + | Ast0.InitGccName(name,eq,ini) -> + let (name_n,name) = ident name in + let (eq_n,eq) = mcode eq in + let (ini_n,ini) = initialiser ini in + (multibind [name_n;eq_n;ini_n], Ast0.InitGccName(name,eq,ini)) + | Ast0.IComma(cm) -> + let (n,cm) = mcode cm in (n,Ast0.IComma(cm)) + | Ast0.Idots(d,whencode) -> + let (d_n,d) = mcode d in + let (whencode_n,whencode) = get_option initialiser whencode in + (bind d_n whencode_n, Ast0.Idots(d,whencode)) + | Ast0.OptIni(i) -> + let (n,i) = initialiser i in (n,Ast0.OptIni(i)) + | Ast0.UniqueIni(i) -> + let (n,i) = initialiser i in (n,Ast0.UniqueIni(i))) in + List.fold_left + (function (other_metas,init) -> + function + Ast0.InitTag(init_meta) -> + (other_metas,Ast0.rewrap init (Ast0.AsInit(init,init_meta))) + | x -> (x::other_metas,init)) + ([],i) metas + +and designator = function + Ast0.DesignatorField(dot,id) -> + let (dot_n,dot) = mcode dot in + let (id_n,id) = ident id in + (bind dot_n id_n, Ast0.DesignatorField(dot,id)) + | Ast0.DesignatorIndex(lb,exp,rb) -> + let (lb_n,lb) = mcode lb in + let (exp_n,exp) = expression exp in + let (rb_n,rb) = mcode rb in + (multibind [lb_n;exp_n;rb_n], Ast0.DesignatorIndex(lb,exp,rb)) + | Ast0.DesignatorRange(lb,min,dots,max,rb) -> + let (lb_n,lb) = mcode lb in + let (min_n,min) = expression min in + let (dots_n,dots) = mcode dots in + let (max_n,max) = expression max in + let (rb_n,rb) = mcode rb in + (multibind [lb_n;min_n;dots_n;max_n;rb_n], + Ast0.DesignatorRange(lb,min,dots,max,rb)) + +and parameterTypeDef p = + rewrap p + (match Ast0.unwrap p with + Ast0.VoidParam(ty) -> + let (n,ty) = typeC ty in (n,Ast0.VoidParam(ty)) + | Ast0.Param(ty,Some id) -> + let ((ty_id_n,ty),id) = named_type ty id in + (ty_id_n, Ast0.Param(ty,Some id)) + | Ast0.Param(ty,None) -> + let (ty_n,ty) = typeC ty in + (ty_n, Ast0.Param(ty,None)) + | Ast0.MetaParam(name,pure) -> + let (n,name) = mcode name in + (n,Ast0.MetaParam(name,pure)) + | Ast0.MetaParamList(name,lenname,pure) -> + let (n,name) = mcode name in + (n,Ast0.MetaParamList(name,lenname,pure)) + | Ast0.PComma(cm) -> + let (n,cm) = mcode cm in (n,Ast0.PComma(cm)) + | Ast0.Pdots(dots) -> + let (n,dots) = mcode dots in (n,Ast0.Pdots(dots)) + | Ast0.Pcircles(dots) -> + let (n,dots) = mcode dots in (n,Ast0.Pcircles(dots)) + | Ast0.OptParam(param) -> + let (n,param) = parameterTypeDef param in (n,Ast0.OptParam(param)) + | Ast0.UniqueParam(param) -> + let (n,param) = parameterTypeDef param in + (n,Ast0.UniqueParam(param))) + +and statement s = + let (metas,s) = + rewrap s + (match Ast0.unwrap s with + Ast0.FunDecl(bef,fi,name,lp,params,rp,lbrace,body,rbrace) -> + let (fi_n,fi) = map_split_bind fninfo fi in + let (name_n,name) = ident name in + let (lp_n,lp) = mcode lp in + let (params_n,params) = dots parameterTypeDef params in + let (rp_n,rp) = mcode rp in + let (lbrace_n,lbrace) = mcode lbrace in + let (body_n,body) = dots statement body in + let (rbrace_n,rbrace) = mcode rbrace in + (multibind + [fi_n;name_n;lp_n;params_n;rp_n;lbrace_n;body_n;rbrace_n], + Ast0.FunDecl(bef,fi,name,lp,params,rp,lbrace,body,rbrace)) + | Ast0.Decl(bef,decl) -> + let (decl_n,decl) = declaration decl in + (decl_n,Ast0.Decl(bef,decl)) + | Ast0.Seq(lbrace,body,rbrace) -> + let (lbrace_n,lbrace) = mcode lbrace in + let (body_n,body) = dots statement body in + let (rbrace_n,rbrace) = mcode rbrace in + (multibind [lbrace_n;body_n;rbrace_n], + Ast0.Seq(lbrace,body,rbrace)) + | Ast0.ExprStatement(exp,sem) -> + let (exp_n,exp) = get_option expression exp in + let (sem_n,sem) = mcode sem in + (bind exp_n sem_n, Ast0.ExprStatement(exp,sem)) + | Ast0.IfThen(iff,lp,exp,rp,branch1,aft) -> + let (iff_n,iff) = mcode iff in + let (lp_n,lp) = mcode lp in + let (exp_n,exp) = expression exp in + let (rp_n,rp) = mcode rp in + let (branch1_n,branch1) = statement branch1 in + (multibind [iff_n;lp_n;exp_n;rp_n;branch1_n], + Ast0.IfThen(iff,lp,exp,rp,branch1,aft)) + | Ast0.IfThenElse(iff,lp,exp,rp,branch1,els,branch2,aft) -> + let (iff_n,iff) = mcode iff in + let (lp_n,lp) = mcode lp in + let (exp_n,exp) = expression exp in + let (rp_n,rp) = mcode rp in + let (branch1_n,branch1) = statement branch1 in + let (els_n,els) = mcode els in + let (branch2_n,branch2) = statement branch2 in + (multibind [iff_n;lp_n;exp_n;rp_n;branch1_n;els_n;branch2_n], + Ast0.IfThenElse(iff,lp,exp,rp,branch1,els,branch2,aft)) + | Ast0.While(whl,lp,exp,rp,body,aft) -> + let (whl_n,whl) = mcode whl in + let (lp_n,lp) = mcode lp in + let (exp_n,exp) = expression exp in + let (rp_n,rp) = mcode rp in + let (body_n,body) = statement body in + (multibind [whl_n;lp_n;exp_n;rp_n;body_n], + Ast0.While(whl,lp,exp,rp,body,aft)) + | Ast0.Do(d,body,whl,lp,exp,rp,sem) -> + let (d_n,d) = mcode d in + let (body_n,body) = statement body in + let (whl_n,whl) = mcode whl in + let (lp_n,lp) = mcode lp in + let (exp_n,exp) = expression exp in + let (rp_n,rp) = mcode rp in + let (sem_n,sem) = mcode sem in + (multibind [d_n;body_n;whl_n;lp_n;exp_n;rp_n;sem_n], + Ast0.Do(d,body,whl,lp,exp,rp,sem)) + | Ast0.For(fr,lp,e1,sem1,e2,sem2,e3,rp,body,aft) -> + let (fr_n,fr) = mcode fr in + let (lp_n,lp) = mcode lp in + let (e1_n,e1) = get_option expression e1 in + let (sem1_n,sem1) = mcode sem1 in + let (e2_n,e2) = get_option expression e2 in + let (sem2_n,sem2) = mcode sem2 in + let (e3_n,e3) = get_option expression e3 in + let (rp_n,rp) = mcode rp in + let (body_n,body) = statement body in + (multibind [fr_n;lp_n;e1_n;sem1_n;e2_n;sem2_n;e3_n;rp_n;body_n], + Ast0.For(fr,lp,e1,sem1,e2,sem2,e3,rp,body,aft)) + | Ast0.Iterator(nm,lp,args,rp,body,aft) -> + let (nm_n,nm) = ident nm in + let (lp_n,lp) = mcode lp in + let (args_n,args) = dots expression args in + let (rp_n,rp) = mcode rp in + let (body_n,body) = statement body in + (multibind [nm_n;lp_n;args_n;rp_n;body_n], + Ast0.Iterator(nm,lp,args,rp,body,aft)) + | Ast0.Switch(switch,lp,exp,rp,lb,decls,cases,rb) -> + let (switch_n,switch) = mcode switch in + let (lp_n,lp) = mcode lp in + let (exp_n,exp) = expression exp in + let (rp_n,rp) = mcode rp in + let (lb_n,lb) = mcode lb in + let (decls_n,decls) = dots statement decls in + let (cases_n,cases) = dots case_line cases in + let (rb_n,rb) = mcode rb in + (multibind [switch_n;lp_n;exp_n;rp_n;lb_n;decls_n;cases_n;rb_n], + Ast0.Switch(switch,lp,exp,rp,lb,decls,cases,rb)) + | Ast0.Break(br,sem) -> + let (br_n,br) = mcode br in + let (sem_n,sem) = mcode sem in + (bind br_n sem_n, Ast0.Break(br,sem)) + | Ast0.Continue(cont,sem) -> + let (cont_n,cont) = mcode cont in + let (sem_n,sem) = mcode sem in + (bind cont_n sem_n, Ast0.Continue(cont,sem)) + | Ast0.Label(l,dd) -> + let (l_n,l) = ident l in + let (dd_n,dd) = mcode dd in + (bind l_n dd_n, Ast0.Label(l,dd)) + | Ast0.Goto(goto,l,sem) -> + let (goto_n,goto) = mcode goto in + let (l_n,l) = ident l in + let (sem_n,sem) = mcode sem in + (bind goto_n (bind l_n sem_n), Ast0.Goto(goto,l,sem)) + | Ast0.Return(ret,sem) -> + let (ret_n,ret) = mcode ret in + let (sem_n,sem) = mcode sem in + (bind ret_n sem_n, Ast0.Return(ret,sem)) + | Ast0.ReturnExpr(ret,exp,sem) -> + let (ret_n,ret) = mcode ret in + let (exp_n,exp) = expression exp in + let (sem_n,sem) = mcode sem in + (multibind [ret_n;exp_n;sem_n], Ast0.ReturnExpr(ret,exp,sem)) + | Ast0.MetaStmt(name,pure) -> + let (name_n,name) = mcode name in + (name_n,Ast0.MetaStmt(name,pure)) + | Ast0.MetaStmtList(name,pure) -> + let (name_n,name) = mcode name in + (name_n,Ast0.MetaStmtList(name,pure)) + | Ast0.AsStmt _ -> failwith "not possible" + | Ast0.Disj(starter,statement_dots_list,mids,ender) -> + do_disj starter statement_dots_list mids ender (dots statement) + (fun starter statement_dots_list mids ender -> + Ast0.Disj(starter,statement_dots_list,mids,ender)) + | Ast0.Nest(starter,stmt_dots,ender,whn,multi) -> + let (starter_n,starter) = mcode starter in + let (stmt_dots_n,stmt_dots) = dots statement stmt_dots in + let (ender_n,ender) = mcode ender in + let (whn_n,whn) = + map_split_bind (whencode (dots statement) statement) whn in + (multibind [starter_n;stmt_dots_n;ender_n;whn_n], + Ast0.Nest(starter,stmt_dots,ender,whn,multi)) + | Ast0.Exp(exp) -> + let (exp_n,exp) = expression exp in + (exp_n,Ast0.Exp(exp)) + | Ast0.TopExp(exp) -> + let (exp_n,exp) = expression exp in + (exp_n,Ast0.TopExp(exp)) + | Ast0.Ty(ty) -> + let (ty_n,ty) = typeC ty in + (ty_n,Ast0.Ty(ty)) + | Ast0.TopInit(init) -> + let (init_n,init) = initialiser init in + (init_n,Ast0.TopInit(init)) + | Ast0.Dots(d,whn) -> + let (d_n,d) = mcode d in + let (whn_n,whn) = + map_split_bind (whencode (dots statement) statement) whn in + (bind d_n whn_n, Ast0.Dots(d,whn)) + | Ast0.Circles(d,whn) -> + let (d_n,d) = mcode d in + let (whn_n,whn) = + map_split_bind (whencode (dots statement) statement) whn in + (bind d_n whn_n, Ast0.Circles(d,whn)) + | Ast0.Stars(d,whn) -> + let (d_n,d) = mcode d in + let (whn_n,whn) = + map_split_bind (whencode (dots statement) statement) whn in + (bind d_n whn_n, Ast0.Stars(d,whn)) + | Ast0.Include(inc,name) -> + let (inc_n,inc) = mcode inc in + let (name_n,name) = mcode name in + (bind inc_n name_n, Ast0.Include(inc,name)) + | Ast0.Undef(def,id) -> + let (def_n,def) = mcode def in + let (id_n,id) = ident id in + (multibind [def_n;id_n],Ast0.Undef(def,id)) + | Ast0.Define(def,id,params,body) -> + let (def_n,def) = mcode def in + let (id_n,id) = ident id in + let (params_n,params) = define_parameters params in + let (body_n,body) = dots statement body in + (multibind [def_n;id_n;params_n;body_n], + Ast0.Define(def,id,params,body)) + | Ast0.OptStm(re) -> + let (re_n,re) = statement re in (re_n,Ast0.OptStm(re)) + | Ast0.UniqueStm(re) -> + let (re_n,re) = statement re in (re_n,Ast0.UniqueStm(re))) in + List.fold_left + (function (other_metas,stmt) -> + function + Ast0.StmtTag(stmt_meta) -> + (other_metas,Ast0.rewrap stmt (Ast0.AsStmt(stmt,stmt_meta))) + | x -> (x::other_metas,stmt)) + ([],s) metas + + (* not parameterizable for now... *) +and define_parameters p = + rewrap p + (match Ast0.unwrap p with + Ast0.NoParams -> (option_default,Ast0.NoParams) + | Ast0.DParams(lp,params,rp) -> + let (lp_n,lp) = mcode lp in + let (params_n,params) = dots define_param params in + let (rp_n,rp) = mcode rp in + (multibind [lp_n;params_n;rp_n], Ast0.DParams(lp,params,rp))) + +and define_param p = + rewrap p + (match Ast0.unwrap p with + Ast0.DParam(id) -> let (n,id) = ident id in (n,Ast0.DParam(id)) + | Ast0.DPComma(comma) -> + let (n,comma) = mcode comma in (n,Ast0.DPComma(comma)) + | Ast0.DPdots(d) -> + let (n,d) = mcode d in (n,Ast0.DPdots(d)) + | Ast0.DPcircles(c) -> + let (n,c) = mcode c in (n,Ast0.DPcircles(c)) + | Ast0.OptDParam(dp) -> + let (n,dp) = define_param dp in (n,Ast0.OptDParam(dp)) + | Ast0.UniqueDParam(dp) -> + let (n,dp) = define_param dp in (n,Ast0.UniqueDParam(dp))) + +and fninfo = function + Ast0.FStorage(stg) -> + let (n,stg) = mcode stg in (n,Ast0.FStorage(stg)) + | Ast0.FType(ty) -> let (n,ty) = typeC ty in (n,Ast0.FType(ty)) + | Ast0.FInline(inline) -> + let (n,inline) = mcode inline in (n,Ast0.FInline(inline)) + | Ast0.FAttr(init) -> + let (n,init) = mcode init in (n,Ast0.FAttr(init)) + +and whencode notfn alwaysfn = function + Ast0.WhenNot a -> let (n,a) = notfn a in (n,Ast0.WhenNot(a)) + | Ast0.WhenAlways a -> let (n,a) = alwaysfn a in (n,Ast0.WhenAlways(a)) + | Ast0.WhenModifier(x) -> (option_default,Ast0.WhenModifier(x)) + | Ast0.WhenNotTrue(e) -> + let (n,e) = expression e in (n,Ast0.WhenNotTrue(e)) + | Ast0.WhenNotFalse(e) -> + let (n,e) = expression e in (n,Ast0.WhenNotFalse(e)) + +and case_line c = + rewrap c + (match Ast0.unwrap c with + Ast0.Default(def,colon,code) -> + let (def_n,def) = mcode def in + let (colon_n,colon) = mcode colon in + let (code_n,code) = dots statement code in + (multibind [def_n;colon_n;code_n], Ast0.Default(def,colon,code)) + | Ast0.Case(case,exp,colon,code) -> + let (case_n,case) = mcode case in + let (exp_n,exp) = expression exp in + let (colon_n,colon) = mcode colon in + let (code_n,code) = dots statement code in + (multibind [case_n;exp_n;colon_n;code_n], + Ast0.Case(case,exp,colon,code)) + | Ast0.DisjCase(starter,case_lines,mids,ender) -> + do_disj starter case_lines mids ender case_line + (fun starter case_lines mids ender -> + Ast0.DisjCase(starter,case_lines,mids,ender)) + | Ast0.OptCase(case) -> + let (n,case) = case_line case in (n,Ast0.OptCase(case))) + +and top_level t = + rewrap t + (match Ast0.unwrap t with + Ast0.FILEINFO(old_file,new_file) -> + let (old_file_n,old_file) = mcode old_file in + let (new_file_n,new_file) = mcode new_file in + (bind old_file_n new_file_n,Ast0.FILEINFO(old_file,new_file)) + | Ast0.NONDECL(statement_dots) -> + let (n,statement_dots) = statement statement_dots in + (n,Ast0.NONDECL(statement_dots)) + | Ast0.CODE(stmt_dots) -> + let (stmt_dots_n,stmt_dots) = dots statement stmt_dots in + (stmt_dots_n, Ast0.CODE(stmt_dots)) + | Ast0.TOPCODE(stmt_dots) -> + let (stmt_dots_n,stmt_dots) = dots statement stmt_dots in + (stmt_dots_n, Ast0.TOPCODE(stmt_dots)) + | Ast0.ERRORWORDS(exps) -> + let (n,exps) = map_split_bind expression exps in + (n, Ast0.ERRORWORDS(exps)) + | Ast0.OTHER(_) -> failwith "unexpected code") + +let process t = + List.map + (function x -> + match top_level x with + ([],code) -> code + | (l,_) -> + failwith + (Printf.sprintf + "rule starting on line %d contains unattached metavariables: %s" + (Ast0.get_line x) + (String.concat ", " + (List.map + (function nm -> + let (r,n) = Ast0.unwrap_mcode nm in r^"."^n) + (List.map Ast0.meta_pos_name l))))) + t diff --git a/parsing_cocci/get_metas.mli b/parsing_cocci/get_metas.mli new file mode 100644 index 0000000..08b9d26 --- /dev/null +++ b/parsing_cocci/get_metas.mli @@ -0,0 +1,27 @@ +(* + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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. + *) + + +val process : Ast0_cocci.rule -> Ast0_cocci.rule diff --git a/parsing_cocci/id_utils.ml b/parsing_cocci/id_utils.ml index 7dbeb26..6f05ad0 100644 --- a/parsing_cocci/id_utils.ml +++ b/parsing_cocci/id_utils.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/id_utils.mli b/parsing_cocci/id_utils.mli index de51c1f..936c31c 100644 --- a/parsing_cocci/id_utils.mli +++ b/parsing_cocci/id_utils.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/index.ml b/parsing_cocci/index.ml index e7e301c..11d2812 100644 --- a/parsing_cocci/index.ml +++ b/parsing_cocci/index.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -23,7 +25,7 @@ (* create an index for each constructor *) -(* current max is 155 *) +(* current max is 157 *) (* doesn't really work - requires that identical terms with no token subterms (eg dots) not appear on the same line *) @@ -92,6 +94,7 @@ let expression e = | Ast0.Constant(const) -> [18] | Ast0.FunCall(fn,lp,args,rp) -> [19] | Ast0.Assignment(left,op,right,simple) -> [20] + | Ast0.Sequence(left,op,right) -> [156] | Ast0.CondExpr(exp1,why,exp2,colon,exp3) -> [21] | Ast0.Postfix(exp,op) -> [22] | Ast0.Infix(exp,op) -> [23] @@ -118,6 +121,7 @@ let expression e = | Ast0.Estars(dots,whencode) -> [40] | Ast0.OptExp(exp) -> [41] | Ast0.UniqueExp(exp) -> [42] + | Ast0.AsExpr _ -> failwith "not possible" let typeC t = match Ast0.unwrap t with @@ -137,6 +141,7 @@ let typeC t = | Ast0.DisjType(_,type_list,_,_) -> [130] | Ast0.OptType(ty) -> [45] | Ast0.UniqueType(ty) -> [46] + | Ast0.AsType _ -> failwith "not possible" let declaration d = match Ast0.unwrap d with @@ -146,12 +151,14 @@ let declaration d = | Ast0.Init(stg,ty,id,eq,exp,sem) -> [54] | Ast0.UnInit(stg,ty,id,sem) -> [55] | Ast0.MacroDecl(name,lp,args,rp,sem) -> [137] + | Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem) -> [157] | Ast0.TyDecl(ty,sem) -> [116] | Ast0.Typedef(stg,ty,id,sem) -> [143] | Ast0.DisjDecl(_,decls,_,_) -> [97] (* added after *) | Ast0.Ddots(dots,whencode) -> [133] | Ast0.OptDecl(decl) -> [56] | Ast0.UniqueDecl(decl) -> [57] + | Ast0.AsDecl _ -> failwith "not possible" let initialiser i = match Ast0.unwrap i with @@ -165,6 +172,7 @@ let initialiser i = | Ast0.Idots(d,whencode) -> [109] | Ast0.OptIni(id) -> [110] | Ast0.UniqueIni(id) -> [111] + | Ast0.AsInit _ -> failwith "not possible" let parameterTypeDef p = match Ast0.unwrap p with @@ -213,6 +221,7 @@ let statement s = | Ast0.Define(def,id,params,body) -> [119] | Ast0.OptStm(re) -> [87] | Ast0.UniqueStm(re) -> [88] + | Ast0.AsStmt _ -> failwith "not possible" let case_line c = match Ast0.unwrap c with diff --git a/parsing_cocci/index.mli b/parsing_cocci/index.mli index 82ecb1e..ba2c6c2 100644 --- a/parsing_cocci/index.mli +++ b/parsing_cocci/index.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/insert_plus.ml b/parsing_cocci/insert_plus.ml index 74854aa..5991a99 100644 --- a/parsing_cocci/insert_plus.ml +++ b/parsing_cocci/insert_plus.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -143,7 +145,8 @@ let create_root_token_table minus = | Ast0.IsoWhenTag(_) -> failwith "only within iso phase" | Ast0.IsoWhenTTag(_) -> failwith "only within iso phase" | Ast0.IsoWhenFTag(_) -> failwith "only within iso phase" - | Ast0.MetaPosTag(p) -> failwith "metapostag only within iso phase" + | Ast0.MetaPosTag(p) -> failwith "not in plus code" + | Ast0.HiddenVarTag(p) -> failwith "only within iso phase" in Hashtbl.add root_token_table key tokens) CN.minus_table; @@ -367,7 +370,8 @@ let call_collect_minus context_nodes : | Ast0.IsoWhenTag(_) -> failwith "only within iso phase" | Ast0.IsoWhenTTag(_) -> failwith "only within iso phase" | Ast0.IsoWhenFTag(_) -> failwith "only within iso phase" - | Ast0.MetaPosTag(p) -> failwith "metapostag only within iso phase") + | Ast0.MetaPosTag(p) -> failwith "not in plus code" + | Ast0.HiddenVarTag(p) -> failwith "only within iso phase") context_nodes (* result of collecting the join points should be sorted in nondecreasing @@ -443,7 +447,7 @@ let mk_paramdots x = Ast.ParamDotsTag (Ast0toast.parameter_list x) let mk_stmtdots x = Ast.StmtDotsTag (Ast0toast.statement_dots x) let mk_decldots x = Ast.DeclDotsTag (Ast0toast.declaration_dots x) let mk_casedots x = failwith "+ case lines not supported" -let mk_typeC x = Ast.FullTypeTag (Ast0toast.typeC x) +let mk_typeC x = Ast.FullTypeTag (Ast0toast.typeC false x) let mk_init x = Ast.InitTag (Ast0toast.initialiser x) let mk_param x = Ast.ParamTag (Ast0toast.parameterTypeDef x) @@ -604,7 +608,8 @@ let call_collect_plus context_nodes : | Ast0.IsoWhenTag(_) -> failwith "only within iso phase" | Ast0.IsoWhenTTag(_) -> failwith "only within iso phase" | Ast0.IsoWhenFTag(_) -> failwith "only within iso phase" - | Ast0.MetaPosTag(p) -> failwith "metapostag only within iso phase") + | Ast0.MetaPosTag(p) -> failwith "not visible here" + | Ast0.HiddenVarTag(_) -> failwith "only within iso phase") context_nodes (* The plus fragments are converted to a list of lists of lists. diff --git a/parsing_cocci/insert_plus.mli b/parsing_cocci/insert_plus.mli index 46acab1..ac0e0f6 100644 --- a/parsing_cocci/insert_plus.mli +++ b/parsing_cocci/insert_plus.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/iso_compile.ml b/parsing_cocci/iso_compile.ml index 8780622..d46833a 100644 --- a/parsing_cocci/iso_compile.ml +++ b/parsing_cocci/iso_compile.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -28,7 +30,7 @@ module Ast0 = Ast0_cocci module Ast = Ast_cocci (* Detects where position variables can be present in the match of an -isomorpshims. This is allowed if all elements of an isomorphism have only +isomorphism. This is allowed if all elements of an isomorphism have only one token or if we can somehow match up equal tokens of all of the isomorphic variants. *) @@ -51,7 +53,7 @@ let sequence_tokens = [[tokens1;tokens2;tokens3];[tokens4;tokens5;tokens6];[tokens7;tokens8]] -If all of the lists tokens contain only one element, we are done. +If all of the lists of tokens contain only one element, we are done. Otherwise, we focus on tokens1. For each of its elements, if they are present in all of the others, then a position is assigned, and if not then @@ -65,37 +67,50 @@ let get_p _ = let c = !pctr in pctr := c + 1; let name = ("",Printf.sprintf "p%d" c) in - [Ast0.MetaPos(Ast0.make_mcode name,[],Ast.PER)] + (* pos var just gives a name we can look up, used for historical reasons *) + Ast0.HiddenVarTag + ([Ast0.MetaPosTag(Ast0.MetaPos(Ast0.make_mcode name,[],Ast.PER))]) let process_info l = - let rec loop = function + let rec loop previously_used = function [] -> () | ((f::r)::xs) as a -> - if List.for_all (List.for_all (function e -> List.length e = 1)) a - then - let p = get_p() in - List.iter (List.iter (List.iter (function (_,pos) -> pos := p))) a - else - let all = r @ List.concat xs in - let rec find_first_available a = function - [] -> raise Not_found - | (str,pos)::xs -> - if str = a && !pos = [] - then pos - else find_first_available a xs in - List.iter - (function (str,pos) -> - match !pos with - [] -> - (try - let entries = List.map (find_first_available str) all in - let p = get_p() in - pos := p; - List.iter (function pos -> pos := p) entries - with Not_found -> ()) - | _ -> (* already have a variable *) ()) - f; - loop xs + let safe_add p pos = + (* don't add pos var where a pos var is already present *) + if Common.inter_set previously_used pos = [] then p::pos else pos in + let p = + if List.for_all (List.for_all (function e -> List.length e = 1)) a + then + let p = get_p() in + List.iter + (List.iter + (List.iter (function (_,pos) -> pos := safe_add p !pos))) + a; + [p] + else + let all = r @ List.concat xs in + let rec find_first_available a = function + [] -> raise Not_found + | (str,pos)::xs -> + if str = a && Common.inter_set previously_used !pos = [] + then pos + else find_first_available a xs in + List.fold_left + (function prev -> + function (str,pos) -> + if Common.inter_set previously_used !pos = [] + then + try + let entries = List.map (find_first_available str) all in + let p = get_p() in + pos := p::!pos; + List.iter (function pos -> pos := p :: !pos) entries; + p::prev + with Not_found -> prev + (* otherwise already annotated *) + else prev) + [] f in + loop (p@previously_used) xs | _ -> failwith "bad iso" in loop l @@ -104,4 +119,4 @@ let process_info l = let process (metavars,alts,name) = let toks = List.map (List.map sequence_tokens.VT0.combiner_rec_anything) alts in - process_info toks + process_info [] toks diff --git a/parsing_cocci/iso_compile.mli b/parsing_cocci/iso_compile.mli index 7826ecb..6560be5 100644 --- a/parsing_cocci/iso_compile.mli +++ b/parsing_cocci/iso_compile.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/iso_pattern.ml b/parsing_cocci/iso_pattern.ml index 0aec0b1..2b53341 100644 --- a/parsing_cocci/iso_pattern.ml +++ b/parsing_cocci/iso_pattern.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -127,7 +129,6 @@ type reason = | Braces of Ast0.statement | Nest of Ast0.statement | Position of Ast.meta_name - | Multiposition | TypeMatch of reason list let rec interpret_reason name line reason printer = @@ -169,9 +170,7 @@ let rec interpret_reason name line reason printer = | Position(rule,name) -> Printf.printf "position variable %s.%s conflicts with an isomorphism\n" rule name - | Multiposition _ -> - Printf.printf "multiple position variables conflict with an isomorphism\n" - | TypeMatch reason_list -> + | TypeMatch reason_list -> List.iter (function r -> interpret_reason name line r printer) reason_list | _ -> failwith "not possible" @@ -325,16 +324,16 @@ let match_maker checks_needed context_required whencode_allowed = if checks_needed then match Ast0.get_pos cmc with - [(Ast0.MetaPos (name,_,_)) as x] -> - (match Ast0.get_pos pmc with - [Ast0.MetaPos (name1,_,_)] -> - add_binding name1 (Ast0.MetaPosTag x) binding - | [] -> - let (rule,name) = Ast0.unwrap_mcode name in - Fail (Position(rule,name)) - | _ -> Fail Multiposition) - | [] -> OK binding - | _ -> Fail Multiposition + [] -> OK binding (* no hidden vars in smpl code, so nothing to do *) + | ((a::_) as hidden_code) -> + let hidden_pattern = + List.filter (function Ast0.HiddenVarTag _ -> true | _ -> false) + (Ast0.get_pos pmc) in + (match hidden_pattern with + [Ast0.HiddenVarTag([Ast0.MetaPosTag(Ast0.MetaPos (name1,_,_))])] -> + add_binding name1 (Ast0.HiddenVarTag(hidden_code)) binding + | [] -> Fail(Position(Ast0.unwrap_mcode(Ast0.meta_pos_name a))) + | _ -> failwith "badly compiled iso - multiple hidden variable") else OK binding in let match_dots matcher is_list_matcher do_list_match d1 d2 = @@ -659,6 +658,14 @@ let match_maker checks_needed context_required whencode_allowed = [check_mcode opa opb; match_expr lefta leftb; match_expr righta rightb] else return false + | (Ast0.Sequence(lefta,opa,righta), + Ast0.Sequence(leftb,opb,rightb)) -> + if mcode_equal opa opb + then + conjunct_many_bindings + [check_mcode opa opb; match_expr lefta leftb; + match_expr righta rightb] + else return false | (Ast0.CondExpr(exp1a,lp1,exp2a,rp1,exp3a), Ast0.CondExpr(exp1b,lp,exp2b,rp,exp3b)) -> conjunct_many_bindings @@ -744,7 +751,8 @@ let match_maker checks_needed context_required whencode_allowed = | (Ast0.Estars(_,Some _),_) -> failwith "whencode not allowed in a pattern1" | (Ast0.OptExp(expa),Ast0.OptExp(expb)) - | (Ast0.UniqueExp(expa),Ast0.UniqueExp(expb)) -> match_expr expa expb + | (Ast0.UniqueExp(expa),Ast0.UniqueExp(expb)) -> + match_expr expa expb | (_,Ast0.OptExp(expb)) | (_,Ast0.UniqueExp(expb)) -> match_expr pattern expb | _ -> return false @@ -881,6 +889,16 @@ let match_maker checks_needed context_required whencode_allowed = check_mcode sc1 sc; match_dots match_expr is_elist_matcher do_elist_match argsa argsb] + | (Ast0.MacroDeclInit(namea,lp1,argsa,rp1,eq1,ini1,sc1), + Ast0.MacroDeclInit(nameb,lp,argsb,rp,eq,ini,sc)) -> + conjunct_many_bindings + [match_ident namea nameb; + check_mcode lp1 lp; check_mcode rp1 rp; + check_mcode eq1 eq; + check_mcode sc1 sc; + match_dots match_expr is_elist_matcher do_elist_match + argsa argsb; + match_init ini1 ini] | (Ast0.TyDecl(tya,sc1),Ast0.TyDecl(tyb,sc)) -> conjunct_bindings (check_mcode sc1 sc) (match_typeC tya tyb) | (Ast0.Typedef(stga,tya,ida,sc1),Ast0.Typedef(stgb,tyb,idb,sc)) -> @@ -1537,19 +1555,24 @@ let lookup name bindings mv_bindings = isomorphism *) let instantiate bindings mv_bindings = let mcode x = - let pos_names = - List.map (function Ast0.MetaPos(name,_,_) -> name) (Ast0.get_pos x) in + let (hidden,others) = + List.partition + (function Ast0.HiddenVarTag _ -> true | _ -> false) + (Ast0.get_pos x) in let new_names = - List.fold_left - (function prev -> - function name -> - try - match lookup name bindings mv_bindings with - Common.Left(Ast0.MetaPosTag(id)) -> id::prev - | _ -> failwith "not possible" - with Not_found -> prev) - [] pos_names in - Ast0.set_pos new_names x in + match hidden with + [Ast0.HiddenVarTag([Ast0.MetaPosTag(Ast0.MetaPos (name,_,_))])] -> + (try + (* not at all sure that this is good enough *) + match lookup name bindings mv_bindings with + Common.Left(Ast0.HiddenVarTag(ids)) -> ids + | _ -> failwith "not possible" + with Not_found -> + (*can't fail because checks_needed could be false?*) + []) + | [] -> [] (* no hidden metavars allowed *) + | _ -> failwith "badly compiled mcode" in + Ast0.set_pos (new_names@others) x in let donothing r k e = k e in (* cases where metavariables can occur *) @@ -2598,6 +2621,7 @@ let rewrap_anything = function | Ast0.IsoWhenTag(_) | Ast0.IsoWhenTTag(_) | Ast0.IsoWhenFTag(_) -> failwith "only for isos within iso phase" | Ast0.MetaPosTag(p) -> Ast0.MetaPosTag(p) + | Ast0.HiddenVarTag(p) -> Ast0.HiddenVarTag(p) (* not sure it is possible *) (* --------------------------------------------------------------------- *) diff --git a/parsing_cocci/iso_pattern.mli b/parsing_cocci/iso_pattern.mli index 964662e..b82eeba 100644 --- a/parsing_cocci/iso_pattern.mli +++ b/parsing_cocci/iso_pattern.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/lexer_cli.mll b/parsing_cocci/lexer_cli.mll index b87da3e..f8ccb0f 100644 --- a/parsing_cocci/lexer_cli.mll +++ b/parsing_cocci/lexer_cli.mll @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/lexer_cocci.mll b/parsing_cocci/lexer_cocci.mll index 36bfcf5..d94c7d8 100644 --- a/parsing_cocci/lexer_cocci.mll +++ b/parsing_cocci/lexer_cocci.mll @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -554,7 +556,8 @@ rule token = parse | "@" { pass_zero(); if !Data.in_rule_name or not !current_line_started then (start_line true; TArob) - else (check_minus_context_linetype "@"; TPArob) } + else (check_minus_context_linetype "@"; + TPArob (get_current_line_type lexbuf)) } | "=~" { start_line true; TTildeEq (get_current_line_type lexbuf) } | "!~" { start_line true; TTildeExclEq (get_current_line_type lexbuf) } diff --git a/parsing_cocci/lexer_script.mll b/parsing_cocci/lexer_script.mll index 921e7ac..d471488 100644 --- a/parsing_cocci/lexer_script.mll +++ b/parsing_cocci/lexer_script.mll @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/main.ml b/parsing_cocci/main.ml index af5764b..8a990de 100644 --- a/parsing_cocci/main.ml +++ b/parsing_cocci/main.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/merge.ml b/parsing_cocci/merge.ml index 71c25f0..96d35e4 100644 --- a/parsing_cocci/merge.ml +++ b/parsing_cocci/merge.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/merge.mli b/parsing_cocci/merge.mli index def844e..94c2dc9 100644 --- a/parsing_cocci/merge.mli +++ b/parsing_cocci/merge.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/parse_aux.ml b/parsing_cocci/parse_aux.ml index 2544269..6f300f3 100644 --- a/parsing_cocci/parse_aux.ml +++ b/parsing_cocci/parse_aux.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -241,13 +243,6 @@ let check_meta_tyopt type_irrelevant = function raise (Semantic_cocci.Semantic "can't inherit the freshness of an identifier") - | Ast.MetaListlenDecl((rule,name)) -> - (match lookup rule name with - Ast.MetaListlenDecl(_) -> () - | _ -> - raise - (Semantic_cocci.Semantic - ("incompatible inheritance declaration "^name))) | Ast.MetaTypeDecl(Ast.NONE,(rule,name)) -> (match lookup rule name with Ast.MetaTypeDecl(_,_) -> () @@ -269,6 +264,13 @@ let check_meta_tyopt type_irrelevant = function raise (Semantic_cocci.Semantic ("incompatible inheritance declaration "^name))) + | Ast.MetaListlenDecl((rule,name)) -> + (match lookup rule name with + Ast.MetaListlenDecl(_) -> () + | _ -> + raise + (Semantic_cocci.Semantic + ("incompatible inheritance declaration "^name))) | Ast.MetaParamDecl(Ast.NONE,(rule,name)) -> (match lookup rule name with Ast.MetaParamDecl(_,_) -> () @@ -283,6 +285,13 @@ let check_meta_tyopt type_irrelevant = function raise (Semantic_cocci.Semantic ("incompatible inheritance declaration "^name))) + | Ast.MetaConstDecl(Ast.NONE,(rule,name),ty) -> + (match lookup rule name with + Ast.MetaConstDecl(_,_,ty1) when type_irrelevant or ty = ty1 -> () + | _ -> + raise + (Semantic_cocci.Semantic + ("incompatible inheritance declaration "^name))) | Ast.MetaErrDecl(Ast.NONE,(rule,name)) -> (match lookup rule name with Ast.MetaErrDecl(_,_) -> () @@ -319,6 +328,27 @@ let check_meta_tyopt type_irrelevant = function raise (Semantic_cocci.Semantic ("incompatible inheritance declaration "^name))) + | Ast.MetaDeclDecl(Ast.NONE,(rule,name)) -> + (match lookup rule name with + Ast.MetaDeclDecl(_,_) -> () + | _ -> + raise + (Semantic_cocci.Semantic + ("incompatible inheritance declaration "^name))) + | Ast.MetaFieldDecl(Ast.NONE,(rule,name)) -> + (match lookup rule name with + Ast.MetaFieldDecl(_,_) -> () + | _ -> + raise + (Semantic_cocci.Semantic + ("incompatible inheritance declaration "^name))) + | Ast.MetaFieldListDecl(Ast.NONE,(rule,name),len_name) -> + (match lookup rule name with + Ast.MetaFieldListDecl(_,_,_) -> () + | _ -> + raise + (Semantic_cocci.Semantic + ("incompatible inheritance declaration "^name))) | Ast.MetaStmDecl(Ast.NONE,(rule,name)) -> (match lookup rule name with Ast.MetaStmDecl(_,_) -> () @@ -347,13 +377,6 @@ let check_meta_tyopt type_irrelevant = function raise (Semantic_cocci.Semantic ("incompatible inheritance declaration "^name))) - | Ast.MetaConstDecl(Ast.NONE,(rule,name),ty) -> - (match lookup rule name with - Ast.MetaConstDecl(_,_,ty1) when type_irrelevant or ty = ty1 -> () - | _ -> - raise - (Semantic_cocci.Semantic - ("incompatible inheritance declaration "^name))) | Ast.MetaPosDecl(Ast.NONE,(rule,name)) -> (match lookup rule name with Ast.MetaPosDecl(_,_) -> diff --git a/parsing_cocci/parse_cocci.ml b/parsing_cocci/parse_cocci.ml index 5359bbe..bc0af9b 100644 --- a/parsing_cocci/parse_cocci.ml +++ b/parsing_cocci/parse_cocci.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -220,7 +222,7 @@ let token2c (tok,_) = | PC.TMPtVirg -> ";" | PC.TArobArob -> "@@" | PC.TArob -> "@" - | PC.TPArob -> "P@" + | PC.TPArob clt -> "P@" | PC.TScript -> "script" | PC.TInitialize -> "initialize" | PC.TFinalize -> "finalize" @@ -436,7 +438,7 @@ let get_clt (tok,_) = | PC.TPtrOp(clt) | PC.TEq(clt) | PC.TAssign(_,clt) | PC.TDot(clt) | PC.TComma(clt) - | PC.TPtVirg(clt) + | PC.TPArob(clt) | PC.TPtVirg(clt) | PC.TOPar0(clt) | PC.TMid0(clt) | PC.TCPar0(clt) | PC.TOEllipsis(clt) | PC.TCEllipsis(clt) @@ -593,6 +595,7 @@ let update_clt (tok,x) clt = | PC.TAssign(s,_) -> (PC.TAssign(s,clt),x) | PC.TDot(_) -> (PC.TDot(clt),x) | PC.TComma(_) -> (PC.TComma(clt),x) + | PC.TPArob(_) -> (PC.TPArob(clt),x) | PC.TPtVirg(_) -> (PC.TPtVirg(clt),x) | PC.TLineEnd(_) -> (PC.TLineEnd(clt),x) @@ -701,7 +704,7 @@ let split_token ((tok,_) as t) = | PC.TMetaDeclarer(_,_,_,clt) | PC.TMetaIterator(_,_,_,clt) -> split t clt | PC.TMPtVirg | PC.TArob | PC.TArobArob | PC.TScript | PC.TInitialize | PC.TFinalize -> ([t],[t]) - | PC.TPArob | PC.TMetaPos(_,_,_,_) -> ([t],[]) + | PC.TPArob clt | PC.TMetaPos(_,_,_,clt) -> split t clt | PC.TFunDecl(clt) | PC.TWhen(clt) | PC.TWhenTrue(clt) | PC.TWhenFalse(clt) @@ -1018,7 +1021,7 @@ let token2line (tok,_) = | PC.TIncludeL(_,clt) | PC.TIncludeNL(_,clt) | PC.TEq(clt) | PC.TAssign(_,clt) | PC.TDot(clt) | PC.TComma(clt) - | PC.TPtVirg(clt) -> + | PC.TPArob(clt) | PC.TPtVirg(clt) -> let (_,line,_,_,_,_,_,_) = clt in Some line | _ -> None @@ -1051,8 +1054,8 @@ and find_line_end inwhen line clt q = function (PC.TExists,a) :: (find_line_end inwhen line clt q xs) | ((PC.TComma(clt),a) as x)::xs when token2line x = line -> (PC.TComma(clt),a) :: (find_line_end inwhen line clt q xs) - | ((PC.TPArob,a) as x)::xs -> (* no line #, just assume on the same line *) - x :: (find_line_end inwhen line clt q xs) + | ((PC.TPArob(clt),a) as x)::xs when token2line x = line -> + (PC.TPArob(clt),a) :: (find_line_end inwhen line clt q xs) | x::xs when token2line x = line -> x :: (find_line_end inwhen line clt q xs) | xs -> (PC.TLineEnd(clt),q)::(insert_line_end xs) @@ -1428,19 +1431,75 @@ let prepare_tokens tokens = let prepare_mv_tokens tokens = detect_types false (detect_attr tokens) -let rec consume_minus_positions = function +let unminus (d,x1,x2,x3,x4,x5,x6,x7) = (* for hidden variables *) + match d with + D.MINUS | D.OPTMINUS | D.UNIQUEMINUS -> (D.CONTEXT,x1,x2,x3,x4,x5,x6,x7) + | D.PLUS -> failwith "unexpected plus code" + | D.PLUSPLUS -> failwith "unexpected plus code" + | D.CONTEXT | D.UNIQUE | D.OPT -> (D.CONTEXT,x1,x2,x3,x4,x5,x6,x7) + +let process_minus_positions x name clt meta = + let (arity,ln,lln,offset,col,strbef,straft,pos) = get_clt x in + let name = Parse_aux.clt2mcode name (unminus clt) in + update_clt x (arity,ln,lln,offset,col,strbef,straft,meta name::pos) + +(* first attach positions, then the others, so that positions can refer to +the larger term represented by the preceding metavariable *) +let rec consume_minus_positions toks = + let rec loop_pos = function + [] -> [] + | ((PC.TOPar0(_),_) as x)::xs | ((PC.TCPar0(_),_) as x)::xs + | ((PC.TMid0(_),_) as x)::xs -> x::loop_pos xs + | x::(PC.TPArob _,_)::(PC.TMetaPos(name,constraints,per,clt),_)::xs -> + let x = + process_minus_positions x name clt + (function name -> + Ast0.MetaPosTag(Ast0.MetaPos(name,constraints,per))) in + (loop_pos (x::xs)) + | x::xs -> x::loop_pos xs in + let rec loop_other = function + [] -> [] + | ((PC.TOPar0(_),_) as x)::xs | ((PC.TCPar0(_),_) as x)::xs + | ((PC.TMid0(_),_) as x)::xs -> x::loop_other xs + | x::(PC.TPArob _,_)::(PC.TMetaExp(name,constraints,pure,ty,clt),_)::xs -> + let x = + process_minus_positions x name clt + (function name -> + Ast0.ExprTag + (Ast0.wrap + (Ast0.MetaExpr(name,constraints,ty,Ast.ANY,pure)))) in + (loop_other (x::xs)) + | x::(PC.TPArob _,_)::(PC.TMetaInit(name,pure,clt),_)::xs -> + let x = + process_minus_positions x name clt + (function name -> + Ast0.InitTag(Ast0.wrap(Ast0.MetaInit(name,pure)))) in + (loop_other (x::xs)) + | x::(PC.TPArob _,_)::(PC.TMetaType(name,pure,clt),_)::xs -> + let x = + process_minus_positions x name clt + (function name -> + Ast0.TypeCTag(Ast0.wrap(Ast0.MetaType(name,pure)))) in + (loop_other (x::xs)) + | x::(PC.TPArob _,_)::(PC.TMetaDecl(name,pure,clt),_)::xs -> + let x = + process_minus_positions x name clt + (function name -> + Ast0.DeclTag(Ast0.wrap(Ast0.MetaDecl(name,pure)))) in + (loop_other (x::xs)) + | x::(PC.TPArob _,_)::(PC.TMetaStm(name,pure,clt),_)::xs -> + let x = + process_minus_positions x name clt + (function name -> + Ast0.StmtTag(Ast0.wrap(Ast0.MetaStmt(name,pure)))) in + (loop_other (x::xs)) + | x::xs -> x::loop_other xs in + loop_other(loop_pos toks) + +let rec consume_plus_positions = function [] -> [] - | ((PC.TOPar0(_),_) as x)::xs | ((PC.TCPar0(_),_) as x)::xs - | ((PC.TMid0(_),_) as x)::xs -> x::consume_minus_positions xs - | x::(PC.TPArob,_)::(PC.TMetaPos(name,constraints,per,clt),_)::xs -> - let (arity,ln,lln,offset,col,strbef,straft,pos) = get_clt x in - let name = Parse_aux.clt2mcode name clt in - let x = - update_clt x - (arity,ln,lln,offset,col,strbef,straft, - (Ast0.MetaPos(name,constraints,per)::pos)) in - (consume_minus_positions (x::xs)) - | x::xs -> x::consume_minus_positions xs + | (PC.TPArob _,_)::x::xs -> consume_plus_positions xs + | x::xs -> x::consume_plus_positions xs let any_modif rule = let mcode x = @@ -1572,7 +1631,7 @@ let parse_iso file = let tokens = prepare_tokens (start@tokens) in (* print_tokens "iso tokens" tokens; - å*) + *) let entry = parse_one "iso main" PC.iso_main file tokens in let entry = List.map (List.map Test_exps.process_anything) entry in if more @@ -1588,6 +1647,7 @@ let parse_iso file = else [(iso_metavars,entry,rule_name)] in loop starts_with_name start | (false,_) -> [] in + List.iter Iso_compile.process res; res) let parse_iso_files existing_isos iso_files extra_path = @@ -1714,6 +1774,7 @@ let parse file = *) let minus_tokens = consume_minus_positions minus_tokens in + let plus_tokens = consume_plus_positions plus_tokens in let minus_tokens = prepare_tokens minus_tokens in let plus_tokens = prepare_tokens plus_tokens in @@ -1996,7 +2057,6 @@ let process file isofile verbose = List.filter (function (_,_,nm) -> not (List.mem nm dropiso)) chosen_isos in - List.iter Iso_compile.process chosen_isos; let dropped_isos = match reserved_names with "all"::others -> @@ -2047,6 +2107,8 @@ let process file isofile verbose = if !Flag.sgrep_mode2 then minus else Single_statement.single_statement minus in let minus = Simple_assignments.simple_assignments minus in + (* has to be last, introduced AsExpr, etc *) + let minus = Get_metas.process minus in let minus_ast = Ast0toast.ast0toast rule_name dependencies dropped_isos exists minus is_exp ruletype in diff --git a/parsing_cocci/parse_cocci.mli b/parsing_cocci/parse_cocci.mli index 294f781..3d29aa9 100644 --- a/parsing_cocci/parse_cocci.mli +++ b/parsing_cocci/parse_cocci.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/parser_cocci.mly b/parsing_cocci/parser_cocci.mly index 134a91c..06331bc 100644 --- a/parsing_cocci/parser_cocci.mly +++ b/parsing_cocci/parser_cocci.mly @@ -1,5 +1,7 @@ /* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/parser_cocci_menhir.ml b/parsing_cocci/parser_cocci_menhir.ml index 53cc662..4d26105 100644 --- a/parsing_cocci/parser_cocci_menhir.ml +++ b/parsing_cocci/parser_cocci_menhir.ml @@ -2,155 +2,155 @@ exception Error type token = | Tvolatile of ( -# 120 "parser_cocci_menhir.mly" +# 122 "parser_cocci_menhir.mly" (Data.clt) # 8 "parser_cocci_menhir.ml" ) | Tvoid of ( -# 116 "parser_cocci_menhir.mly" +# 118 "parser_cocci_menhir.mly" (Data.clt) # 13 "parser_cocci_menhir.ml" ) | Tunsigned of ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) # 18 "parser_cocci_menhir.ml" ) | Tunion of ( -# 116 "parser_cocci_menhir.mly" +# 118 "parser_cocci_menhir.mly" (Data.clt) # 23 "parser_cocci_menhir.ml" ) | Ttypedef of ( -# 119 "parser_cocci_menhir.mly" +# 121 "parser_cocci_menhir.mly" (Data.clt) # 28 "parser_cocci_menhir.ml" ) | Tstruct of ( -# 116 "parser_cocci_menhir.mly" +# 118 "parser_cocci_menhir.mly" (Data.clt) # 33 "parser_cocci_menhir.ml" ) | Tstatic of ( -# 119 "parser_cocci_menhir.mly" +# 121 "parser_cocci_menhir.mly" (Data.clt) # 38 "parser_cocci_menhir.ml" ) | Tssize_t of ( -# 115 "parser_cocci_menhir.mly" +# 117 "parser_cocci_menhir.mly" (Data.clt) # 43 "parser_cocci_menhir.ml" ) | Tsize_t of ( -# 115 "parser_cocci_menhir.mly" +# 117 "parser_cocci_menhir.mly" (Data.clt) # 48 "parser_cocci_menhir.ml" ) | Tsigned of ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) # 53 "parser_cocci_menhir.ml" ) | Tshort of ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) # 58 "parser_cocci_menhir.ml" ) | Tregister of ( -# 119 "parser_cocci_menhir.mly" +# 121 "parser_cocci_menhir.mly" (Data.clt) # 63 "parser_cocci_menhir.ml" ) | Tptrdiff_t of ( -# 115 "parser_cocci_menhir.mly" +# 117 "parser_cocci_menhir.mly" (Data.clt) # 68 "parser_cocci_menhir.ml" ) | Tlong of ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) # 73 "parser_cocci_menhir.ml" ) | Tlist | Tint of ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) # 79 "parser_cocci_menhir.ml" ) | Tinline of ( -# 119 "parser_cocci_menhir.mly" +# 121 "parser_cocci_menhir.mly" (Data.clt) # 84 "parser_cocci_menhir.ml" ) | Tfloat of ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) # 89 "parser_cocci_menhir.ml" ) | Textern of ( -# 119 "parser_cocci_menhir.mly" +# 121 "parser_cocci_menhir.mly" (Data.clt) # 94 "parser_cocci_menhir.ml" ) | Tenum of ( -# 116 "parser_cocci_menhir.mly" +# 118 "parser_cocci_menhir.mly" (Data.clt) # 99 "parser_cocci_menhir.ml" ) | Tdouble of ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) # 104 "parser_cocci_menhir.ml" ) | Tconst of ( -# 120 "parser_cocci_menhir.mly" +# 122 "parser_cocci_menhir.mly" (Data.clt) # 109 "parser_cocci_menhir.ml" ) | Tchar of ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) # 114 "parser_cocci_menhir.ml" ) | Tauto of ( -# 119 "parser_cocci_menhir.mly" +# 121 "parser_cocci_menhir.mly" (Data.clt) # 119 "parser_cocci_menhir.ml" ) | Tattr of ( -# 121 "parser_cocci_menhir.mly" +# 123 "parser_cocci_menhir.mly" (string * Data.clt) # 124 "parser_cocci_menhir.ml" ) | TXor of ( -# 161 "parser_cocci_menhir.mly" +# 164 "parser_cocci_menhir.mly" (Data.clt) # 129 "parser_cocci_menhir.ml" ) | TWords | TWhy0 | TWhy of ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) # 136 "parser_cocci_menhir.ml" ) | TWhile of ( -# 123 "parser_cocci_menhir.mly" +# 125 "parser_cocci_menhir.mly" (Data.clt) # 141 "parser_cocci_menhir.ml" ) | TWhenTrue of ( -# 143 "parser_cocci_menhir.mly" +# 146 "parser_cocci_menhir.mly" (Data.clt) # 146 "parser_cocci_menhir.ml" ) | TWhenFalse of ( -# 143 "parser_cocci_menhir.mly" +# 146 "parser_cocci_menhir.mly" (Data.clt) # 151 "parser_cocci_menhir.ml" ) | TWhen of ( -# 143 "parser_cocci_menhir.mly" +# 146 "parser_cocci_menhir.mly" (Data.clt) # 156 "parser_cocci_menhir.ml" ) @@ -158,338 +158,342 @@ type token = | TUsing | TUnderscore | TUndef of ( -# 150 "parser_cocci_menhir.mly" +# 153 "parser_cocci_menhir.mly" (Data.clt * token) # 164 "parser_cocci_menhir.ml" ) | TTypedef | TTypeId of ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) # 170 "parser_cocci_menhir.ml" ) | TType | TTildeExclEq of ( -# 163 "parser_cocci_menhir.mly" +# 166 "parser_cocci_menhir.mly" (Data.clt) # 176 "parser_cocci_menhir.ml" ) | TTildeEq of ( -# 163 "parser_cocci_menhir.mly" +# 166 "parser_cocci_menhir.mly" (Data.clt) # 181 "parser_cocci_menhir.ml" ) | TTilde of ( -# 168 "parser_cocci_menhir.mly" +# 171 "parser_cocci_menhir.mly" (Data.clt) # 186 "parser_cocci_menhir.ml" ) | TSymbol | TSymId of ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) # 192 "parser_cocci_menhir.ml" ) | TSwitch of ( -# 123 "parser_cocci_menhir.mly" +# 125 "parser_cocci_menhir.mly" (Data.clt) # 197 "parser_cocci_menhir.ml" ) | TSub of ( -# 163 "parser_cocci_menhir.mly" +# 166 "parser_cocci_menhir.mly" (Data.clt) # 202 "parser_cocci_menhir.ml" ) | TString of ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) # 207 "parser_cocci_menhir.ml" ) | TStrict of ( -# 143 "parser_cocci_menhir.mly" +# 146 "parser_cocci_menhir.mly" (Data.clt) # 212 "parser_cocci_menhir.ml" ) | TStatement | TSizeof of ( -# 124 "parser_cocci_menhir.mly" +# 126 "parser_cocci_menhir.mly" (Data.clt) # 218 "parser_cocci_menhir.ml" ) | TShROp of ( -# 165 "parser_cocci_menhir.mly" +# 168 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) # 223 "parser_cocci_menhir.ml" ) | TShLOp of ( -# 165 "parser_cocci_menhir.mly" +# 168 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) # 228 "parser_cocci_menhir.ml" ) | TScriptData of ( -# 140 "parser_cocci_menhir.mly" +# 143 "parser_cocci_menhir.mly" (string) # 233 "parser_cocci_menhir.ml" ) | TScript | TRuleName of ( -# 112 "parser_cocci_menhir.mly" +# 114 "parser_cocci_menhir.mly" (string) # 239 "parser_cocci_menhir.ml" ) | TRightIso | TReturn of ( -# 123 "parser_cocci_menhir.mly" +# 125 "parser_cocci_menhir.mly" (Data.clt) # 245 "parser_cocci_menhir.ml" ) | TPure | TPtrOp of ( -# 173 "parser_cocci_menhir.mly" +# 176 "parser_cocci_menhir.mly" (Data.clt) # 251 "parser_cocci_menhir.ml" ) | TPtVirg of ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) # 256 "parser_cocci_menhir.ml" ) | TPragma of ( -# 126 "parser_cocci_menhir.mly" +# 128 "parser_cocci_menhir.mly" (Ast_cocci.added_string * Data.clt) # 261 "parser_cocci_menhir.ml" ) | TPosition | TPosAny | TPlusFile of ( -# 152 "parser_cocci_menhir.mly" +# 155 "parser_cocci_menhir.mly" (string * Data.clt) # 268 "parser_cocci_menhir.ml" ) | TPlus0 | TPlus of ( -# 167 "parser_cocci_menhir.mly" +# 170 "parser_cocci_menhir.mly" (Data.clt) # 274 "parser_cocci_menhir.ml" ) | TPathIsoFile of ( -# 148 "parser_cocci_menhir.mly" +# 151 "parser_cocci_menhir.mly" (string) # 279 "parser_cocci_menhir.ml" ) | TParameter | TPOEllipsis of ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) # 285 "parser_cocci_menhir.ml" ) | TPCEllipsis of ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) # 290 "parser_cocci_menhir.ml" ) - | TPArob + | TPArob of ( +# 142 "parser_cocci_menhir.mly" + (Data.clt) +# 295 "parser_cocci_menhir.ml" +) | TOrLog of ( -# 158 "parser_cocci_menhir.mly" +# 161 "parser_cocci_menhir.mly" (Data.clt) -# 296 "parser_cocci_menhir.ml" +# 300 "parser_cocci_menhir.ml" ) | TOr of ( -# 160 "parser_cocci_menhir.mly" +# 163 "parser_cocci_menhir.mly" (Data.clt) -# 301 "parser_cocci_menhir.ml" +# 305 "parser_cocci_menhir.ml" ) | TOn | TOPar0 of ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 307 "parser_cocci_menhir.ml" +# 311 "parser_cocci_menhir.ml" ) | TOPar of ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 312 "parser_cocci_menhir.ml" +# 316 "parser_cocci_menhir.ml" ) | TOInit of ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 317 "parser_cocci_menhir.ml" +# 321 "parser_cocci_menhir.ml" ) | TOEllipsis of ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 322 "parser_cocci_menhir.ml" +# 326 "parser_cocci_menhir.ml" ) | TOCro of ( -# 171 "parser_cocci_menhir.mly" +# 174 "parser_cocci_menhir.mly" (Data.clt) -# 327 "parser_cocci_menhir.ml" +# 331 "parser_cocci_menhir.ml" ) | TOBrace of ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 332 "parser_cocci_menhir.ml" +# 336 "parser_cocci_menhir.ml" ) | TNothing | TNotEq of ( -# 163 "parser_cocci_menhir.mly" +# 166 "parser_cocci_menhir.mly" (Data.clt) -# 338 "parser_cocci_menhir.ml" +# 342 "parser_cocci_menhir.ml" ) | TNever | TName | TMul of ( -# 168 "parser_cocci_menhir.mly" +# 171 "parser_cocci_menhir.mly" (Data.clt) -# 345 "parser_cocci_menhir.ml" +# 349 "parser_cocci_menhir.ml" ) | TMinusFile of ( -# 152 "parser_cocci_menhir.mly" +# 155 "parser_cocci_menhir.mly" (string * Data.clt) -# 350 "parser_cocci_menhir.ml" +# 354 "parser_cocci_menhir.ml" ) | TMinus of ( -# 167 "parser_cocci_menhir.mly" +# 170 "parser_cocci_menhir.mly" (Data.clt) -# 355 "parser_cocci_menhir.ml" +# 359 "parser_cocci_menhir.ml" ) | TMid0 of ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 360 "parser_cocci_menhir.ml" +# 364 "parser_cocci_menhir.ml" ) | TMetavariable | TMetaType of ( -# 132 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Parse_aux.info) -# 366 "parser_cocci_menhir.ml" +# 370 "parser_cocci_menhir.ml" ) | TMetaStmList of ( -# 132 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Parse_aux.info) -# 371 "parser_cocci_menhir.ml" +# 375 "parser_cocci_menhir.ml" ) | TMetaStm of ( -# 132 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Parse_aux.info) -# 376 "parser_cocci_menhir.ml" +# 380 "parser_cocci_menhir.ml" ) | TMetaPos of ( -# 137 "parser_cocci_menhir.mly" +# 139 "parser_cocci_menhir.mly" (Parse_aux.pos_info) -# 381 "parser_cocci_menhir.ml" +# 385 "parser_cocci_menhir.ml" ) | TMetaParamList of ( -# 134 "parser_cocci_menhir.mly" +# 136 "parser_cocci_menhir.mly" (Parse_aux.list_info) -# 386 "parser_cocci_menhir.ml" +# 390 "parser_cocci_menhir.ml" ) | TMetaParam of ( -# 132 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Parse_aux.info) -# 391 "parser_cocci_menhir.ml" +# 395 "parser_cocci_menhir.ml" ) | TMetaLocalIdExp of ( -# 136 "parser_cocci_menhir.mly" +# 138 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 396 "parser_cocci_menhir.ml" +# 400 "parser_cocci_menhir.ml" ) | TMetaLocalFunc of ( -# 129 "parser_cocci_menhir.mly" +# 131 "parser_cocci_menhir.mly" (Parse_aux.idinfo) -# 401 "parser_cocci_menhir.ml" +# 405 "parser_cocci_menhir.ml" ) | TMetaIterator of ( -# 130 "parser_cocci_menhir.mly" +# 132 "parser_cocci_menhir.mly" (Parse_aux.idinfo) -# 406 "parser_cocci_menhir.ml" +# 410 "parser_cocci_menhir.ml" ) | TMetaInitList of ( -# 134 "parser_cocci_menhir.mly" +# 136 "parser_cocci_menhir.mly" (Parse_aux.list_info) -# 411 "parser_cocci_menhir.ml" +# 415 "parser_cocci_menhir.ml" ) | TMetaInit of ( -# 133 "parser_cocci_menhir.mly" +# 135 "parser_cocci_menhir.mly" (Parse_aux.info) -# 416 "parser_cocci_menhir.ml" +# 420 "parser_cocci_menhir.ml" ) | TMetaIdExp of ( -# 136 "parser_cocci_menhir.mly" +# 138 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 421 "parser_cocci_menhir.ml" +# 425 "parser_cocci_menhir.ml" ) | TMetaId of ( -# 128 "parser_cocci_menhir.mly" +# 130 "parser_cocci_menhir.mly" (Parse_aux.midinfo) -# 426 "parser_cocci_menhir.ml" +# 430 "parser_cocci_menhir.ml" ) | TMetaFunc of ( -# 129 "parser_cocci_menhir.mly" +# 131 "parser_cocci_menhir.mly" (Parse_aux.idinfo) -# 431 "parser_cocci_menhir.ml" +# 435 "parser_cocci_menhir.ml" ) | TMetaFieldList of ( -# 135 "parser_cocci_menhir.mly" +# 137 "parser_cocci_menhir.mly" (Parse_aux.list_info) -# 436 "parser_cocci_menhir.ml" +# 440 "parser_cocci_menhir.ml" ) | TMetaField of ( -# 133 "parser_cocci_menhir.mly" +# 135 "parser_cocci_menhir.mly" (Parse_aux.info) -# 441 "parser_cocci_menhir.ml" +# 445 "parser_cocci_menhir.ml" ) | TMetaExpList of ( -# 134 "parser_cocci_menhir.mly" +# 136 "parser_cocci_menhir.mly" (Parse_aux.list_info) -# 446 "parser_cocci_menhir.ml" +# 450 "parser_cocci_menhir.ml" ) | TMetaExp of ( -# 136 "parser_cocci_menhir.mly" +# 138 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 451 "parser_cocci_menhir.ml" +# 455 "parser_cocci_menhir.ml" ) | TMetaErr of ( -# 131 "parser_cocci_menhir.mly" +# 133 "parser_cocci_menhir.mly" (Parse_aux.expinfo) -# 456 "parser_cocci_menhir.ml" +# 460 "parser_cocci_menhir.ml" ) | TMetaDeclarer of ( -# 130 "parser_cocci_menhir.mly" +# 132 "parser_cocci_menhir.mly" (Parse_aux.idinfo) -# 461 "parser_cocci_menhir.ml" +# 465 "parser_cocci_menhir.ml" ) | TMetaDecl of ( -# 133 "parser_cocci_menhir.mly" +# 135 "parser_cocci_menhir.mly" (Parse_aux.info) -# 466 "parser_cocci_menhir.ml" +# 470 "parser_cocci_menhir.ml" ) | TMetaConst of ( -# 136 "parser_cocci_menhir.mly" +# 138 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 471 "parser_cocci_menhir.ml" +# 475 "parser_cocci_menhir.ml" ) | TMeta of ( -# 133 "parser_cocci_menhir.mly" +# 135 "parser_cocci_menhir.mly" (Parse_aux.info) -# 476 "parser_cocci_menhir.ml" +# 480 "parser_cocci_menhir.ml" ) | TMPtVirg | TLogOp of ( -# 164 "parser_cocci_menhir.mly" +# 167 "parser_cocci_menhir.mly" (Ast_cocci.logicalOp * Data.clt) -# 482 "parser_cocci_menhir.ml" +# 486 "parser_cocci_menhir.ml" ) | TLocal | TLineEnd of ( -# 143 "parser_cocci_menhir.mly" +# 146 "parser_cocci_menhir.mly" (Data.clt) -# 488 "parser_cocci_menhir.ml" +# 492 "parser_cocci_menhir.ml" ) | TIteratorId of ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) -# 493 "parser_cocci_menhir.ml" +# 497 "parser_cocci_menhir.ml" ) | TIterator | TIsoType @@ -503,62 +507,62 @@ type token = | TIso | TInvalid | TInt of ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 509 "parser_cocci_menhir.ml" +# 513 "parser_cocci_menhir.ml" ) | TInitialize | TInitialiser | TIncludeNL of ( -# 149 "parser_cocci_menhir.mly" +# 152 "parser_cocci_menhir.mly" (string * Data.clt) -# 516 "parser_cocci_menhir.ml" +# 520 "parser_cocci_menhir.ml" ) | TIncludeL of ( -# 149 "parser_cocci_menhir.mly" +# 152 "parser_cocci_menhir.mly" (string * Data.clt) -# 521 "parser_cocci_menhir.ml" +# 525 "parser_cocci_menhir.ml" ) | TInc of ( -# 154 "parser_cocci_menhir.mly" +# 157 "parser_cocci_menhir.mly" (Data.clt) -# 526 "parser_cocci_menhir.ml" +# 530 "parser_cocci_menhir.ml" ) | TIf of ( -# 123 "parser_cocci_menhir.mly" +# 125 "parser_cocci_menhir.mly" (Data.clt) -# 531 "parser_cocci_menhir.ml" +# 535 "parser_cocci_menhir.ml" ) | TIdentifier | TIdent of ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) -# 537 "parser_cocci_menhir.ml" +# 541 "parser_cocci_menhir.ml" ) | TIdExpression | TGoto of ( -# 124 "parser_cocci_menhir.mly" +# 126 "parser_cocci_menhir.mly" (Data.clt) -# 543 "parser_cocci_menhir.ml" +# 547 "parser_cocci_menhir.ml" ) | TGenerated | TFunction | TFunDecl of ( -# 124 "parser_cocci_menhir.mly" +# 126 "parser_cocci_menhir.mly" (Data.clt) -# 550 "parser_cocci_menhir.ml" +# 554 "parser_cocci_menhir.ml" ) | TFresh | TForall | TFor of ( -# 123 "parser_cocci_menhir.mly" +# 125 "parser_cocci_menhir.mly" (Data.clt) -# 557 "parser_cocci_menhir.ml" +# 561 "parser_cocci_menhir.ml" ) | TFloat of ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 562 "parser_cocci_menhir.ml" +# 566 "parser_cocci_menhir.ml" ) | TFinalize | TField @@ -568,161 +572,161 @@ type token = | TEver | TError | TEqEq of ( -# 163 "parser_cocci_menhir.mly" +# 166 "parser_cocci_menhir.mly" (Data.clt) -# 574 "parser_cocci_menhir.ml" +# 578 "parser_cocci_menhir.ml" ) | TEq of ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 579 "parser_cocci_menhir.ml" +# 583 "parser_cocci_menhir.ml" ) | TElse of ( -# 123 "parser_cocci_menhir.mly" +# 125 "parser_cocci_menhir.mly" (Data.clt) -# 584 "parser_cocci_menhir.ml" +# 588 "parser_cocci_menhir.ml" ) | TEllipsis of ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 589 "parser_cocci_menhir.ml" +# 593 "parser_cocci_menhir.ml" ) | TDotDot of ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 594 "parser_cocci_menhir.ml" +# 598 "parser_cocci_menhir.ml" ) | TDot of ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 599 "parser_cocci_menhir.ml" +# 603 "parser_cocci_menhir.ml" ) | TDo of ( -# 123 "parser_cocci_menhir.mly" +# 125 "parser_cocci_menhir.mly" (Data.clt) -# 604 "parser_cocci_menhir.ml" +# 608 "parser_cocci_menhir.ml" ) | TDmOp of ( -# 166 "parser_cocci_menhir.mly" +# 169 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) -# 609 "parser_cocci_menhir.ml" +# 613 "parser_cocci_menhir.ml" ) | TDisable | TDepends | TDefineParam of ( -# 151 "parser_cocci_menhir.mly" +# 154 "parser_cocci_menhir.mly" (Data.clt * token * int * int) -# 616 "parser_cocci_menhir.ml" +# 620 "parser_cocci_menhir.ml" ) | TDefine of ( -# 150 "parser_cocci_menhir.mly" +# 153 "parser_cocci_menhir.mly" (Data.clt * token) -# 621 "parser_cocci_menhir.ml" +# 625 "parser_cocci_menhir.ml" ) | TDefault of ( -# 123 "parser_cocci_menhir.mly" +# 125 "parser_cocci_menhir.mly" (Data.clt) -# 626 "parser_cocci_menhir.ml" +# 630 "parser_cocci_menhir.ml" ) | TDeclarerId of ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) -# 631 "parser_cocci_menhir.ml" +# 635 "parser_cocci_menhir.ml" ) | TDeclarer | TDeclaration | TDec of ( -# 154 "parser_cocci_menhir.mly" +# 157 "parser_cocci_menhir.mly" (Data.clt) -# 638 "parser_cocci_menhir.ml" +# 642 "parser_cocci_menhir.ml" ) | TCppConcatOp | TContinue of ( -# 124 "parser_cocci_menhir.mly" +# 126 "parser_cocci_menhir.mly" (Data.clt) -# 644 "parser_cocci_menhir.ml" +# 648 "parser_cocci_menhir.ml" ) | TContext | TConstant | TComma of ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 651 "parser_cocci_menhir.ml" +# 655 "parser_cocci_menhir.ml" ) | TChar of ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 656 "parser_cocci_menhir.ml" +# 660 "parser_cocci_menhir.ml" ) | TCase of ( -# 123 "parser_cocci_menhir.mly" +# 125 "parser_cocci_menhir.mly" (Data.clt) -# 661 "parser_cocci_menhir.ml" +# 665 "parser_cocci_menhir.ml" ) | TCPar0 of ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 666 "parser_cocci_menhir.ml" +# 670 "parser_cocci_menhir.ml" ) | TCPar of ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 671 "parser_cocci_menhir.ml" +# 675 "parser_cocci_menhir.ml" ) | TCEllipsis of ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 676 "parser_cocci_menhir.ml" +# 680 "parser_cocci_menhir.ml" ) | TCCro of ( -# 171 "parser_cocci_menhir.mly" +# 174 "parser_cocci_menhir.mly" (Data.clt) -# 681 "parser_cocci_menhir.ml" +# 685 "parser_cocci_menhir.ml" ) | TCBrace of ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 686 "parser_cocci_menhir.ml" +# 690 "parser_cocci_menhir.ml" ) | TBreak of ( -# 124 "parser_cocci_menhir.mly" +# 126 "parser_cocci_menhir.mly" (Data.clt) -# 691 "parser_cocci_menhir.ml" +# 695 "parser_cocci_menhir.ml" ) | TBang0 | TBang of ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 697 "parser_cocci_menhir.ml" +# 701 "parser_cocci_menhir.ml" ) | TAssign of ( -# 177 "parser_cocci_menhir.mly" +# 180 "parser_cocci_menhir.mly" (Ast_cocci.assignOp * Data.clt) -# 702 "parser_cocci_menhir.ml" +# 706 "parser_cocci_menhir.ml" ) | TArobArob | TArob | TAny of ( -# 143 "parser_cocci_menhir.mly" +# 146 "parser_cocci_menhir.mly" (Data.clt) -# 709 "parser_cocci_menhir.ml" +# 713 "parser_cocci_menhir.ml" ) | TAndLog of ( -# 159 "parser_cocci_menhir.mly" +# 162 "parser_cocci_menhir.mly" (Data.clt) -# 714 "parser_cocci_menhir.ml" +# 718 "parser_cocci_menhir.ml" ) | TAnd of ( -# 162 "parser_cocci_menhir.mly" +# 165 "parser_cocci_menhir.mly" (Data.clt) -# 719 "parser_cocci_menhir.ml" +# 723 "parser_cocci_menhir.ml" ) | EOF and _menhir_jeton = token -# 25 "parser_cocci_menhir.mly" +# 27 "parser_cocci_menhir.mly" (* Not clear how to allow function declarations to specify a return type @@ -800,7 +804,7 @@ let tmeta_to_ident (name,pure,clt) = (function TMetaId(_,_,_,_,_) -> true | _ -> false)); Ast0.wrap(Ast0.MetaId(P.clt2mcode name clt,Ast.IdNoConstraint,Ast.NoVal,pure)) -# 804 "parser_cocci_menhir.ml" +# 808 "parser_cocci_menhir.ml" let _eRR = Error @@ -1055,7 +1059,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct 74 | TOrLog _ -> 73 - | TPArob -> + | TPArob _ -> 72 | TPCEllipsis _ -> 71 @@ -1448,8 +1452,8 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct Obj.repr _v | TOrLog _v -> Obj.repr _v - | TPArob -> - Obj.repr () + | TPArob _v -> + Obj.repr _v | TPCEllipsis _v -> Obj.repr _v | TPOEllipsis _v -> @@ -1594,19 +1598,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct Obj.repr _v let default_reduction = - (16, "\000\000\000\000\0036\000\131\000\000\000\000\003\138\001\157\000\000\001\155\001\156\001\154\000\000\001\159\001\158\000\001\000\000\001\212\000\000\000\000\000\147\000\000\000\000\001\202\000\205\000\000\000\000\000\000\000\187\000\186\000\000\000\000\000\000\000\194\000\193\000\000\000\192\000\191\000\000\000\188\000\000\000\185\000\000\000\000\000\000\000\190\000\000\000\189\003\199\003\198\000\000\000\210\000\000\000\209\000\000\000\000\000\000\000\177\000\176\000\000\000\000\000\000\000\184\000\183\000\000\000\182\000\181\000\000\000\178\000\000\000\175\000\000\000\000\000\000\000\180\000\000\000\179\000\000\000\000\000\197\000\196\000\000\000\211\000\000\000\000\000\000\000\204\000\203\000\000\000\202\000\000\000\206\000\201\000\000\000\198\000\000\000\208\000\000\004s\000\000\000\000\0022\0021\0020\002/\000\000\001F\001E\000\000\000\000\002J\000\000\001\226\0024\000\000\000\000\000\000\000\000\000\000\001M\000\000\000\000\001f\001\150\001e\001d\001c\001b\001\149\001\148\001a\001`\002w\000\000\000\000\002v\000\000\000\000\000\000\000\159\000\000\000\000\000\158\002z\001^\000\000\000\000\000\213\000\000\000\000\000\000\000\000\000\214\000\212\000\000\000\207\000\146\000\000\000\195\000\000\000\219\000\000\000\000\000\000\000\200\000\000\000\000\000\000\003Z\000\000\003\191\003\190\003\192\000\000\003\227\000\000\003\184\000\000\000\000\000\000\000\000\001Q\000\000\000\000\000\000\004j\002\253\000\000\000\000\004h\000\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\004g\004i\003\003\001\144\003\002\001\143\003\001\003\000\002\255\002^\002\251\000\000\000\000\002\252\001G\000\000\000\000\000\000\002\254\000\000\000\000\002\250\004f\000\000\000\000\004G\002\217\000\000\000\000\002\220\000\000\000\000\000\000\000u\000\000\000\000\000\000\000\000\000\000\000\000\001H\001\142\002\249\003\006\000m\000\021\000o\000\000\000\000\000Q\000\000\000\000\000\000\000\000\000\000\000\000\000R\000\000\000S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\141\000d\001R\000p\002\183\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\000\000\000\000\000\000\000\000\000\000\000n\000f\000\000\000e\000\000\002\218\002\221\000\000\002\219\002\222\004F\000\000\003!\000\000\001\011\000\000\000\000\002K\000\000\001\228\0025\000\000\000\000\002I\000\000\000\000\000\250\000\000\000\000\000\000\000\232\000\231\000\000\000\000\000\000\000\239\000\238\000\000\000\237\000\236\000\000\000\233\000\000\000\230\000\000\000\000\000\000\000\235\000\000\000\234\000\000\000\255\000\000\000\254\000\000\000\000\000\000\000\222\000\221\000\000\000\000\000\000\000\229\000\228\000\000\000\227\000\226\000\000\000\223\000\000\000\220\000\000\000\000\000\000\000\225\000\000\000\224\000\000\000\000\000\242\000\241\000\000\001\000\000\000\000\000\000\000\000\249\000\248\000\000\000\247\000\000\000\251\000\246\000\000\000\243\000\000\000\253\000\000\000\000\000\000\000\000\001\002\000\000\000\000\000\000\000\000\001\003\001\001\000\000\000\252\000\000\000\240\000\000\001\b\000\000\000\000\000\000\000\245\000\000\000\000\003\185\003\186\000\000\000\000\001\007\000\000\003\188\003Y\000\000\000\000\000\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\157\001\016\001\017\000\000\000\000\000\000\000\000\000\000\002\139\002\156\002R\000\000\000\000\000\000\000\000\000\000\001]\001\021\000\000\002S\000\000\000\000\000\000\000\000\001\015\000\000\001\r\000\000\001\204\000\171\000\000\000\000\000\170\002\143\002\140\000\000\000\000\003\195\000\000\003\194\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\000\000\001\006\001\004\003\226\000\000\000\000\003\197\003\189\000\244\000\000\001\224\0023\000\000\000\000\003 \000\000\000\000\000\000\003\011\000\000\000\000\000\000\003\004\000\000\000\000\000\000\000\000\000\000\003\019\000\000\000\000\003\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001B\001A\000\000\000\000\003\017\001\174\001\173\003\016\000\000\003\015\003\014\003\r\001\176\003\t\000\000\004K\003\n\000\000\000\000\000\000\000\000\000\000\001@\000\000\004L\003\012\000\000\004N\000\000\003\b\000\000\000\000\000w\002\225\000\000\000\000\002\228\000\000\000\000\003\031\003\030\000\015\003\029\003\028\003\027\003\023\000\000\004R\003\024\000\000\000\000\000\000\000\000\004S\003\026\000\000\004U\000\000\003\022\000\000\000y\002\233\000\000\000\000\002\236\000\000\000\000\000\000\000i\000\000\000h\001U\003\"\003\021\001S\000\000\002\239\000\014\000\016\000g\0003\001C\000q\000\000\000\000\000\000\000\000\000\000\000\000\000\143\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0005\000\000\000\000\000\000\000\000\000\000\000\000\002h\000\000\000\000\002\234\002\237\000\000\002\235\002\238\004T\000\151\002l\000\000\000\000\000\150\002i\000\000\002\231\000\000\000\000\002\226\002\229\000\000\002\227\002\230\003\020\003\007\004M\000\000\001Y\000\000\000\000\000\000\000\000\001\171\000\000\001\210\000$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000&\000\000\000\000\000\000\000\000\001\172\000\000\001\167\000\000\000\000\002}\000\000\000\000\000\000\000\163\000\000\000\000\000\162\002\129\001\175\001\168\000\000\001O\001\166\002~\000\000\001\170\000\000\002\232\000x\000\000\002\224\004O\000\000\002\240\000z\000\000\002\223\004b\004c\004a\004`\004E\000\000\000\000\004D\001k\000\000\002\\\000\000\000\000\000\000\000\000\000\000\001K\002c\000\000\000\000\001\242\000\000\003\005\000\000\000\000\000v\000\000\000\000\000\000\004V\000\000\002]\000\000\000\000\000\000\004d\000\000\000\000\000\000\004H\000\000\000c\001\012\000\000\003\196\000\000\000\000\000\216\000\000\000\000\000\000\000\000\000\217\000\215\000\000\000\000\002Q\000\000\001\240\002<\000\000\003\193\000\000\000\000\000\000\000\218\000\199\000\000\000\000\001\180\000\000\001\179\000\000\001\194\000\000\001\214\000\000\000\000\000\000\004\002\000\000\000\000\000\000\003\240\003\239\000\000\000\000\000\000\003\247\003\246\000\000\003\245\003\244\000\000\003\241\000\000\003\238\000\000\000\000\000\000\003\243\000\000\003\242\000\000\004\007\000\000\004\006\000\000\000\000\000\000\003\230\003\229\000\000\000\000\000\000\003\237\003\236\000\000\003\235\003\234\000\000\003\231\000\000\003\228\000\000\000\000\000\000\003\233\000\000\003\232\000\000\000\000\003\250\003\249\000\000\004\b\000\000\000\000\000\000\004\001\004\000\000\000\003\255\000\000\004\003\003\254\000\000\003\251\000\000\004\005\000\000\000\000\000\000\000\000\004\n\000\000\000\000\000\000\000\000\004\011\004\t\000\000\004\004\000\000\003\248\000\000\004\016\000\000\000\000\000\000\003\253\000\000\002\003\000\000\004>\000\000\000\000\002N\002\004\000\000\001\234\0029\000\000\000\000\000\000\000\000\004\015\003\252\004?\000\000\004B\004A\000\000\000\000\003\154\004@\000\139\000\000\0012\000\000\000\000\000\000\000\000\004\r\000\000\000\000\000\000\000\000\004\014\004\012\000\000\000\000\004/\000\000\000\000\000\000\004\029\004\028\000\000\000\000\000\000\004$\004#\000\000\004\"\004!\000\000\004\030\000\000\004\027\000\000\000\000\000\000\004 \000\000\004\031\000\000\0044\000\000\0043\000\000\000\000\000\000\004\019\004\018\000\000\000\000\000\000\004\026\004\025\000\000\004\024\004\023\000\000\004\020\000\000\004\017\000\000\000\000\000\000\004\022\000\000\004\021\000\000\000\000\004'\004&\000\000\0045\000\000\000\000\000\000\004.\004-\000\000\004,\000\000\0040\004+\000\000\004(\000\000\0042\000\000\000\000\000\000\000\000\0047\000\000\000\000\000\000\000\000\0048\0046\000\000\0041\000\000\004%\000\000\004=\000\000\000\000\000\000\004*\000\000\000\000\000\000\000\000\004<\004)\000\000\000\000\000\000\000\000\004:\000\000\000\000\000\000\000\000\004;\0049\003\180\003\182\003\183\003\181\000\000\000\000\000\000\000\000\000\000\001\162\000\000\000\000\000\000\000\000\000\000\001\019\001\031\001\018\000\000\000\000\000\128\000\000\000\000\000\000\001+\000\000\003\132\000\000\000\000\001'\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001.\000\000\000\000\0011\001u\001t\000\000\000\000\000\000\000\000\001\147\000\000\000\000\000\000\000\000\001$\000\000\001!\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\001%\000\000\000\000\000\000\000\000\003'\000\000\000\000\000\000\000\000\004]\000\000\003\171\000\000\003\170\000\000\000\000\000\000\000\000\004q\000\000\000\000\000\000\004r\000\000\000\018\000\000\000\000\000\000\000\000\003.\000\000\000\000\000\000\003-\003,\003+\003*\003)\003%\000\000\004Y\003&\000\000\004Z\003(\000\000\004\\\000\000\003$\000\000\000{\002\241\000\000\000\000\002\244\000\000\000\000\002\247\000\000\000\000\002\242\002\245\000\000\002\243\002\246\0030\003#\004[\000\000\000\000\000l\000\000\000k\000\000\003/\000\000\0026\000j\000B\001j\000r\000\000\000\000\000\000\000\000\000\000\000\000\000\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\000\000\000\000\000\000\000\000\000\000\000\002\248\000|\000\000\004m\000\000\001\244\000\000\000\000\000\000\001\022\003\161\001\200\000\000\001\199\001\161\001\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\155\001I\000\000\000\000\002o\000\000\000\000\000\154\002s\002p\001W\0013\000\000\0015\0014\000\000\003\173\000\000\003\172\003\157\000\000\000\000\000\000\000\000\000\000\003\167\000\000\003\162\000\000\003\174\000\000\000\000\000\000\000\000\003\168\003\159\002\185\000\000\001\026\001\163\000\000\003\177\000\000\001\165\000\000\000\000\003\205\000\000\003\212\001\028\000\000\001\"\000\000\003\206\001\027\000\000\003\207\000\000\003\214\000\000\000\000\000\000\000\000\001/\000\000\001\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001-\000\000\000\000\0010\000\000\000\000\000\000\000\000\001\146\000\000\000\000\000\000\001#\000\000\001 \000\000\000\000\000\000\000\000\000\000\001*\000\000\001&\001\024\001\023\000\000\003\215\003\216\000\000\003\217\000\000\003\218\000\000\001\164\003\165\000\000\000\000\002P\000\000\001\238\002;\000\000\003\158\000\000\000\000\000\000\003\164\000\000\000\000\000\000\001\135\000\000\001\129\000\000\001\130\000\000\001\140\001\128\001\139\000\000\003\176\001\141\000\000\001\029\000\000\000\000\000\000\000\000\001\137\001\132\002L\000\000\001\133\000\000\001\134\000\000\001\230\0027\000\000\000\000\000\000\002X\000\000\002V\000\000\000\000\002Z\002T\000\000\002[\002U\000\000\003\178\002_\000\000\001\025\000\000\000\000\002M\000\000\001\232\0028\000\000\004n\000\000\004k\000\000\004l\000\019\000\020\000\000\000\000\003f\000\000\003e\000\000\002\159\000\000\003h\000\000\003g\000\000\000\000\000\000\002\167\000\000\000\000\002\171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\174\000\000\000\000\002\177\000\000\002\161\000\000\000\000\002\164\000\000\000\000\000\000\002\168\000\000\000\000\002\172\000\000\000\000\002O\000\000\000\000\002\165\000\000\000\000\002\169\000\000\000\000\003d\003c\002\162\000\000\000\000\000\000\000\000\002\175\000\000\002\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\173\000\000\000\000\002\176\000\000\002\160\000\000\000\000\002\163\000\000\000\000\000\000\002\166\000\000\000\000\002\170\000\000\001\236\002:\000\000\003i\000\000\000\000\004o\000\017\000~\000\000\004p\000\000\000\000\003\128\000\000\000\000\003\179\000s\000\000\000\000\000\000\000t\000\000\003\169\000\000\001\206\000\000\001\208\003\166\000\000\000\000\001\186\000\000\001\185\000\000\001\195\000\000\001\220\000\000\000\000\000\000\001\184\000\000\001\183\000\000\001\192\000\000\001\218\000\000\000\000\000\000\001\191\000\000\000\000\000\000\001\188\000\000\001\187\000\000\001\193\000\000\001\222\000\000\000\000\000\000\001\189\000\000\000\000\000\000\001\182\000\000\001\181\000\000\001\196\000\000\001\216\000\000\000\000\000\000\001\190\000\002\000\000\000`\000\000\000\000\002.\000a\000\000\000\000\003@\003D\003H\003<\003M\0039\000\000\000\000\003E\003L\003=\003K\003;\003J\003?\0037\003>\003G\003:\003A\0038\003C\003I\003F\003B\002\t\002\b\000\137\000\000\000\000\003\150\000\000\000\000\000\000\000\000\003{\003x\000\000\000\000\003|\003y\003z\003W\000\000\000\000\003\156\003O\003N\003P\000\000\002\026\000_\001\197\000\003\000\000\000\000\0033\000\000\002\181\000\000\000\138\000\000\000\000\003\152\000\000\000\000\000\000\000\130\000\000\000\000\003\136\000\000\002\153\002\152\002\000\003X\000\000\002)\000\000\0034\000\000\000\000\000\132\000\000\000\000\003\140\000\000\002\023\000\000\000\000\002\015\000\000\000\000\000\000\002\022\000\000\002\018\000\000\000\000\000\000\001\246\001\245\000\000\000\000\000\000\002*\000\000\002\r\000\000\002\012\000\000\000\127\000\000\000\000\003\130\000\000\000\000\002\007\000\000\000\000\002\011\000\000\000\000\000\135\000\000\000\000\003\146\000\000\000\000\003a\000\000\003`\000\000\000\000\000\000\002\151\002\150\003^\002\191\003S\003_\000\000\002\029\000\000\000\000\000\000\002\025\000\000\002\031\000\000\000\000\000\000\000\000\000\000\000\000\002-\000\000\002\017\000\000\002\016\000\000\000\000\000\000\003U\000\136\000\000\000\000\003\148\000\000\003T\000\000\002\027\000\000\000\000\002\028\000\000\000\000\000\000\000\000\000\000\000\000\002,\000\000\002\021\000\000\002\020\000\000\000\000\001o\000\000\001n\000\000\000\000\000\000\000\000\000\000\002+\000\000\002\014\000\000\001m\000\000\002e\000\133\000\000\000\000\003\142\000\000\000\000\000\000\000\000\003\201\003\200\000\000\000\000\001\153\001\152\000\129\001\151\000\000\000\000\003\134\000\000\002\145\002\144\002\147\003Q\002\187\002\146\001l\000\000\000\134\000\000\000\000\003\144\000\000\000\000\000\000\000\000\002\149\002\148\003]\003[\002\189\003R\003\\\000\000\002$\000\000\002'\000\000\000\000\002 \000\000\000\000\000\000\002\024\000\000\002\030\000\000\000\000\002\019\000\000\000\000\000\000\000\000\000\000\000\000\002\006\000\000\000\000\002&\000\000\002%\000\000\000\000\000\000\000\000\002#\000\000\000\000\002\"\000\000\002!\000\000\000\000\002(\000\000\000\000\001\198\000\004\000\000\002\n\000\005\000\000\000\000\001r\000\006\000\000\002@\002A\002?\000\000\002>\003\202\001\252\000\000\000\007\000\000\002C\002D\002B\000\000\000\000\000\000\000\000\001w\000\000\000\000\000\000\000\000\001|\001~\001}\001x\001z\001y\000\000\000\000\000\000\000\000\000\000\003\208\003\221\000\000\003\209\000\000\003\210\000\000\000\000\003\203\000\000\000\000\000\000\000\000\003\220\000\000\000\000\003\219\002H\002G\000\000\000\000\001\254\002=\002E\000\000\000\000\000\000\000\000\000\000\002\155\000\000\000\000\000\000\000\000\000\000\002\132\002\154\000\000\000\000\000\000\000\167\000\000\000\000\000\166\002\136\002\133\001[\001\020\000\000\000\000\000\000\000\000\001\145\001s\000\000\003\224\000\000\003\225\000\000\000\000\002b\002`\000\000\002a\000\b\000\000\000\t\000\000\002\206\002\207\002\205\000\000\002\204\000\000\000\n\000\000\002\209\002\210\002\208\000\000\002\212\000\000\000\000\000\000\002\198\000\000\000\000\002\200\000\000\002\194\000\000\002\196\000\000\002\201\000\000\002\202\000\000\002\195\002\193\002\213\002\002\002\203\000\000\002\215\000\000\002\214\000\000\002\216\000\000\003b\000\011\000\000\000\000\000\000\000\000\000\000\000\000\0016\000\000\000\000\001:\000\000\0019\000\000\0017\000\000\000\000\000\000\000\000\000\000\001;\0018\000\000\001=\000\000\000\000\000\000\003n\000\000\003m\000\000\000\000\000\000\000\000\003o\000\000\000\000\001q\000\000\000\000\000\000\000\000\000\000\003~\000}\000\000\000\000\001D\000\000\001h\001g\000\000\001\178\000\000\003l\001\250\001\248\000\000\000\000\000\000\000\000\003p\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003k\000\000\000\000\000\000\000\000\000\000\000\000\003j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003w\000\000\000\000\003v\000\000\003s\000\000\000\000\000\000\000\000\000\000\003t\000\000\000\000\000\000\003u\000\r\000\000\003q\000\000\003r") + (16, "\000\000\000\000\003@\000\131\000\000\000\000\003\148\001\160\000\000\001\158\001\159\001\157\000\000\001\162\001\161\000\001\000\000\001\217\000\000\000\000\000\147\000\000\000\000\001\207\000\205\000\000\000\000\000\000\000\187\000\186\000\000\000\000\000\000\000\194\000\193\000\000\000\192\000\191\000\000\000\188\000\000\000\185\000\000\000\000\000\000\000\190\000\000\000\189\003\209\003\208\000\000\000\210\000\000\000\209\000\000\000\000\000\000\000\177\000\176\000\000\000\000\000\000\000\184\000\183\000\000\000\182\000\181\000\000\000\178\000\000\000\175\000\000\000\000\000\000\000\180\000\000\000\179\000\000\000\000\000\197\000\196\000\000\000\211\000\000\000\000\000\000\000\204\000\203\000\000\000\202\000\000\000\206\000\201\000\000\000\198\000\000\000\208\000\000\004}\000\000\000\000\0027\0026\0025\0024\000\000\001H\001G\000\000\000\000\002O\000\000\001\231\0029\000\000\000\000\000\000\000\000\000\000\001P\000\000\000\000\001i\001\153\001h\001g\001f\001e\001\152\001\151\001d\001c\002|\000\000\000\000\002{\000\000\000\000\000\000\000\159\000\000\000\000\000\158\002\127\001a\000\000\000\000\000\213\000\000\000\000\000\000\000\000\000\214\000\212\000\000\000\207\000\146\000\000\000\195\000\000\000\219\000\000\000\000\000\000\000\200\000\000\000\000\000\000\003d\000\000\003\201\003\200\003\202\000\000\003\237\000\000\003\194\000\000\000\000\000\000\000\000\001T\000\000\000\000\000\000\004t\003\007\000\000\000\000\004r\000\000\003#\000\000\000\000\000\000\000\000\000\000\000\000\004q\004s\003\r\001\147\003\012\001\146\003\011\003\n\003\t\002c\003\005\000\000\000\000\003\006\001I\000\000\000\000\000\000\003\b\000\000\000\000\003\004\004p\000\000\000\000\004Q\002\223\000\000\000\000\002\226\000\000\000\000\000\000\000u\000\000\000\000\000\000\000\000\000\000\000\000\001J\001\145\003\003\003\016\000m\000\021\000o\000\000\000\000\000Q\000\000\000\000\000\000\000\000\000\000\000\000\000R\000\000\000S\000\000\000\000\000\000\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\000\000p\000\000\000\000\000\141\001L\002\189\002\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\000\000\000\000\000\000\000\000\000\000\000n\000f\000\000\000e\000\000\002\224\002\227\000\000\002\225\002\228\004P\000\000\003+\000\000\001\011\000\000\000\000\002P\000\000\001\233\002:\000\000\000\000\002N\000\000\000\000\000\250\000\000\000\000\000\000\000\232\000\231\000\000\000\000\000\000\000\239\000\238\000\000\000\237\000\236\000\000\000\233\000\000\000\230\000\000\000\000\000\000\000\235\000\000\000\234\000\000\000\255\000\000\000\254\000\000\000\000\000\000\000\222\000\221\000\000\000\000\000\000\000\229\000\228\000\000\000\227\000\226\000\000\000\223\000\000\000\220\000\000\000\000\000\000\000\225\000\000\000\224\000\000\000\000\000\242\000\241\000\000\001\000\000\000\000\000\000\000\000\249\000\248\000\000\000\247\000\000\000\251\000\246\000\000\000\243\000\000\000\253\000\000\000\000\000\000\000\000\001\002\000\000\000\000\000\000\000\000\001\003\001\001\000\000\000\252\000\000\000\240\000\000\001\b\000\000\000\000\000\000\000\245\000\000\000\000\003\195\003\196\000\000\000\000\001\007\000\000\003\198\003c\000\000\000\000\000\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\162\001\017\001\018\000\000\000\000\000\000\000\000\000\000\002\144\002\161\002W\000\000\000\000\000\000\000\000\000\000\001`\001\022\000\000\002X\000\000\000\000\000\000\000\000\001\016\000\000\001\014\000\000\001\209\000\171\000\000\000\000\000\170\002\148\002\145\000\000\000\000\003\205\000\000\003\204\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\000\000\001\006\001\004\003\236\000\000\000\000\003\207\003\199\000\244\000\000\001\229\0028\000\000\000\000\003*\000\000\000\000\000\000\003\021\000\000\000\000\000\000\003\014\000\000\000\000\000\000\000\000\000\000\003\029\000\000\000\000\003\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001D\001C\000\000\000\000\003\027\001\177\001\176\003\026\000\000\003\025\003\024\003\023\001\179\003\019\000\000\004U\003\020\000\000\000\000\000\000\000\000\000\000\001B\000\000\004V\003\022\000\000\004X\000\000\003\018\000\000\000\000\000w\002\231\000\000\000\000\002\234\000\000\000\000\003)\003(\000\015\003'\003&\003%\003!\000\000\004\\\003\"\000\000\000\000\000\000\000\000\004]\003$\000\000\004_\000\000\003 \000\000\000y\002\239\000\000\000\000\002\242\000\000\000\000\000\000\000i\000\000\000h\001X\003,\003\031\001V\000\000\002\245\000\014\000\016\000g\0003\001\r\000q\000\000\000\000\000\000\000\000\000\000\000\000\000\143\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0005\000\000\000\000\000\000\000\000\000\000\000\000\002m\000\000\000\000\002\240\002\243\000\000\002\241\002\244\004^\000\151\002q\000\000\000\000\000\150\002n\000\000\002\237\000\000\000\000\002\232\002\235\000\000\002\233\002\236\003\030\003\017\004W\000\000\001\\\000\000\000\000\000\000\000\000\001\174\000\000\001\215\000$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000&\000\000\000\000\000\000\000\000\001\175\000\000\001\170\000\000\000\000\002\130\000\000\000\000\000\000\000\163\000\000\000\000\000\162\002\134\001\178\001\171\000\000\001R\001\169\002\131\000\000\001\173\000\000\002\238\000x\000\000\002\230\004Y\000\000\002\246\000z\000\000\002\229\004l\004m\004k\004j\004O\000\000\000\000\004N\000\000\000\000\003\002\001n\000\000\002a\000\000\000\000\000\000\000\000\000\000\001N\002h\000\000\000\000\001\247\003\001\000\000\003\015\000\000\000\000\000v\000\000\000\000\000\000\004`\000\000\002b\000\000\000\000\000\000\004n\000\000\000\000\000\000\004R\000\000\000c\001\012\000\000\003\206\000\000\000\000\000\216\000\000\000\000\000\000\000\000\000\217\000\215\000\000\000\000\002V\000\000\001\245\002A\000\000\003\203\000\000\000\000\000\000\000\218\000\199\000\000\000\000\001\183\000\000\001\182\000\000\001\197\000\000\001\219\000\000\000\000\000\000\004\012\000\000\000\000\000\000\003\250\003\249\000\000\000\000\000\000\004\001\004\000\000\000\003\255\003\254\000\000\003\251\000\000\003\248\000\000\000\000\000\000\003\253\000\000\003\252\000\000\004\017\000\000\004\016\000\000\000\000\000\000\003\240\003\239\000\000\000\000\000\000\003\247\003\246\000\000\003\245\003\244\000\000\003\241\000\000\003\238\000\000\000\000\000\000\003\243\000\000\003\242\000\000\000\000\004\004\004\003\000\000\004\018\000\000\000\000\000\000\004\011\004\n\000\000\004\t\000\000\004\r\004\b\000\000\004\005\000\000\004\015\000\000\000\000\000\000\000\000\004\020\000\000\000\000\000\000\000\000\004\021\004\019\000\000\004\014\000\000\004\002\000\000\004\026\000\000\000\000\000\000\004\007\000\000\002\b\000\000\004H\000\000\000\000\002S\002\t\000\000\001\239\002>\000\000\000\000\000\000\000\000\004\025\004\006\004I\000\000\004L\004K\000\000\000\000\003\164\004J\000\139\000\000\0014\000\000\000\000\000\000\000\000\004\023\000\000\000\000\000\000\000\000\004\024\004\022\000\000\000\000\0049\000\000\000\000\000\000\004'\004&\000\000\000\000\000\000\004.\004-\000\000\004,\004+\000\000\004(\000\000\004%\000\000\000\000\000\000\004*\000\000\004)\000\000\004>\000\000\004=\000\000\000\000\000\000\004\029\004\028\000\000\000\000\000\000\004$\004#\000\000\004\"\004!\000\000\004\030\000\000\004\027\000\000\000\000\000\000\004 \000\000\004\031\000\000\000\000\0041\0040\000\000\004?\000\000\000\000\000\000\0048\0047\000\000\0046\000\000\004:\0045\000\000\0042\000\000\004<\000\000\000\000\000\000\000\000\004A\000\000\000\000\000\000\000\000\004B\004@\000\000\004;\000\000\004/\000\000\004G\000\000\000\000\000\000\0044\000\000\000\000\000\000\000\000\004F\0043\000\000\000\000\000\000\000\000\004D\000\000\000\000\000\000\000\000\004E\004C\003\190\003\192\003\193\003\191\000\000\000\000\000\000\000\000\000\000\001\165\000\000\000\000\000\000\000\000\000\000\001\020\001 \001\019\000\000\000\000\000\128\000\000\000\000\000\000\001,\000\000\003\142\000\000\000\000\001(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001/\000\000\000\000\0013\001x\001w\000\000\000\000\000\000\000\000\001\150\000\000\000\000\000\000\000\000\001%\000\000\001\"\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\001&\000\000\000\000\000\000\000\000\0031\000\000\000\000\000\000\000\000\004g\000\000\003\181\000\000\003\180\000\000\000\000\000\000\000\000\004{\000\000\000\000\000\000\004|\000\000\000\018\000\000\000\000\000\000\000\000\0038\000\000\000\000\000\000\0037\0036\0035\0034\0033\003/\000\000\004c\0030\000\000\004d\0032\000\000\004f\000\000\003.\000\000\000{\002\247\000\000\000\000\002\250\000\000\000\000\002\253\000\000\000\000\002\248\002\251\000\000\002\249\002\252\003:\003-\004e\000\000\000\000\000l\000\000\000k\000\000\0039\000\000\002;\000j\000B\001m\000r\000\000\000\000\000\000\000\000\000\000\000\000\000\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\000\000\000\000\000\000\000\000\000\000\000\002\254\000|\000\000\004w\000\000\001\249\000\000\000\000\000\000\001\023\003\171\001\205\000\000\001\204\001\164\001\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\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\155\001K\000\000\000\000\002t\000\000\000\000\000\154\002x\002u\001Z\0015\000\000\0017\0016\000\000\003\183\000\000\003\182\003\167\000\000\000\000\000\000\000\000\000\000\003\177\000\000\003\172\000\000\003\184\000\000\000\000\000\000\000\000\003\178\003\169\002\191\000\000\001\027\001\166\000\000\003\187\000\000\001\168\000\000\000\000\003\215\000\000\003\222\001\029\000\000\001#\000\000\003\216\001\028\000\000\003\217\000\000\003\224\000\000\000\000\000\000\000\000\0010\000\000\000\000\0011\000\000\001\031\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001.\000\000\000\000\0012\000\000\000\000\000\000\000\000\001\149\000\000\000\000\000\000\001$\000\000\001!\000\000\000\000\000\000\000\000\000\000\001+\000\000\001'\001\025\001\024\000\000\003\225\003\226\000\000\003\227\000\000\003\228\000\000\001\167\003\175\000\000\000\000\002U\000\000\001\243\002@\000\000\003\168\000\000\000\000\000\000\003\174\000\000\000\000\000\000\001\138\000\000\001\132\000\000\001\133\000\000\001\143\001\131\001\142\000\000\003\186\001\144\000\000\001\030\000\000\000\000\000\000\000\000\001\140\001\135\002Q\000\000\001\136\000\000\001\137\000\000\001\235\002<\000\000\000\000\000\000\002]\000\000\002[\000\000\000\000\002_\002Y\000\000\002`\002Z\000\000\003\188\002d\000\000\001\026\000\000\000\000\002R\000\000\001\237\002=\000\000\004x\000\000\004u\000\000\004v\000\019\000\020\000\000\000\000\003p\000\000\003o\000\000\002\164\000\000\003r\000\000\003q\000\000\000\000\000\000\002\172\000\000\000\000\002\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\179\000\000\000\000\002\183\000\000\002\166\000\000\000\000\002\169\000\000\000\000\000\000\002\173\000\000\000\000\002\177\000\000\000\000\002T\000\000\000\000\002\170\000\000\000\000\002\174\000\000\000\000\003n\003m\002\167\000\000\000\000\000\000\000\000\002\180\000\000\000\000\002\181\000\000\002\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\178\000\000\000\000\002\182\000\000\002\165\000\000\000\000\002\168\000\000\000\000\000\000\002\171\000\000\000\000\002\175\000\000\001\241\002?\000\000\003s\000\000\000\000\004y\000\017\000~\000\000\004z\000\000\000\000\003\138\000\000\000\000\003\189\000s\000\000\000\000\000\000\000t\000\000\003\179\000\000\001\211\000\000\001\213\003\176\000\000\000\000\001\191\000\000\001\190\000\000\001\198\000\000\001\227\000\000\000\000\000\000\001\187\000\000\001\186\000\000\001\195\000\000\001\223\000\000\000\000\000\000\001\194\000\000\000\000\001\202\000\000\000\000\001\189\001\203\000\000\001\188\000\000\001\196\000\000\001\225\000\000\000\000\000\000\001\192\000\000\000\000\000\000\001\185\000\000\001\184\000\000\001\199\000\000\001\221\000\000\000\000\000\000\001\193\000\002\000\000\000`\000\000\000\000\0023\000a\000\000\000\000\003J\003N\003R\003F\003W\003C\000\000\000\000\003O\003V\003G\003U\003E\003T\003I\003A\003H\003Q\003D\003K\003B\003M\003S\003P\003L\002\014\002\r\000\137\000\000\000\000\003\160\000\000\000\000\000\000\000\000\003\133\003\130\000\000\000\000\003\134\003\131\003\132\003a\000\000\000\000\003\166\003Y\003X\003Z\000\000\002\031\000_\001\200\000\003\000\000\000\000\003=\000\000\002\187\000\000\000\138\000\000\000\000\003\162\000\000\000\000\000\000\000\130\000\000\000\000\003\146\000\000\002\158\002\157\002\005\003b\000\000\002.\000\000\003>\000\000\000\000\000\132\000\000\000\000\003\150\000\000\002\028\000\000\000\000\002\020\000\000\000\000\000\000\002\027\000\000\002\023\000\000\000\000\000\000\001\251\001\250\000\000\000\000\000\000\002/\000\000\002\018\000\000\002\017\000\000\000\127\000\000\000\000\003\140\000\000\000\000\002\012\000\000\000\000\002\016\000\000\000\000\000\135\000\000\000\000\003\156\000\000\000\000\003k\000\000\003j\000\000\000\000\000\000\002\156\002\155\003h\002\197\003]\003i\000\000\002\"\000\000\000\000\000\000\002\030\000\000\002$\000\000\000\000\000\000\000\000\000\000\000\000\0022\000\000\002\022\000\000\002\021\000\000\000\000\000\000\003_\000\136\000\000\000\000\003\158\000\000\003^\000\000\002 \000\000\000\000\002!\000\000\000\000\000\000\000\000\000\000\000\000\0021\000\000\002\026\000\000\002\025\000\000\000\000\001r\000\000\001q\000\000\000\000\000\000\000\000\000\000\0020\000\000\002\019\000\000\001p\000\000\002j\000\133\000\000\000\000\003\152\000\000\000\000\000\000\000\000\003\211\003\210\000\000\000\000\001\156\001\155\000\129\001\154\000\000\000\000\003\144\000\000\002\150\002\149\002\152\003[\002\193\002\151\001o\000\000\000\134\000\000\000\000\003\154\000\000\000\000\000\000\000\000\002\154\002\153\003g\003e\002\195\003\\\003f\000\000\002)\000\000\002,\000\000\000\000\002%\000\000\000\000\000\000\002\029\000\000\002#\000\000\000\000\002\024\000\000\000\000\000\000\000\000\000\000\000\000\002\011\000\000\000\000\002+\000\000\002*\000\000\000\000\000\000\000\000\002(\000\000\000\000\002'\000\000\002&\000\000\000\000\002-\000\000\000\000\001\201\000\004\000\000\002\015\000\005\000\000\000\000\001u\000\006\000\000\002E\002F\002D\000\000\002C\003\212\002\001\000\000\000\007\000\000\002H\002I\002G\000\000\000\000\000\000\000\000\001z\000\000\000\000\000\000\000\000\001\127\001\129\001\128\001{\001}\001|\000\000\000\000\000\000\000\000\000\000\003\218\003\231\000\000\003\219\000\000\003\220\000\000\000\000\003\213\000\000\000\000\000\000\000\000\003\230\000\000\000\000\003\229\002M\002L\000\000\000\000\002\003\002B\002J\000\000\000\000\000\000\000\000\000\000\002\160\000\000\000\000\000\000\000\000\000\000\002\137\002\159\000\000\000\000\000\000\000\167\000\000\000\000\000\166\002\141\002\138\001^\001\021\000\000\000\000\000\000\000\000\001\148\001v\000\000\003\234\000\000\003\235\000\000\000\000\002g\002e\000\000\002f\000\b\000\000\000\t\000\000\002\212\002\213\002\211\000\000\002\210\000\000\000\n\000\000\002\215\002\216\002\214\000\000\002\218\000\000\000\000\000\000\002\204\000\000\000\000\002\206\000\000\002\200\000\000\002\202\000\000\002\207\000\000\002\208\000\000\002\201\002\199\002\219\002\007\002\209\000\000\002\221\000\000\002\220\000\000\002\222\000\000\003l\000\011\000\000\000\000\000\000\000\000\000\000\000\000\0018\000\000\000\000\001<\000\000\001;\000\000\0019\000\000\000\000\000\000\000\000\000\000\001=\001:\000\000\001?\000\000\000\000\000\000\003x\000\000\003w\000\000\000\000\000\000\000\000\003y\000\000\000\000\001t\000\000\000\000\000\000\000\000\000\000\003\136\000}\000\000\000\000\001F\000\000\001k\001j\000\000\001\181\000\000\003v\001\255\001\253\000\000\000\000\000\000\000\000\003z\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003u\000\000\000\000\000\000\000\000\000\000\000\000\003t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\129\000\000\000\000\003\128\000\000\003}\000\000\000\000\000\000\000\000\000\000\003~\000\000\000\000\000\000\003\127\000\r\000\000\003{\000\000\003|") let error = - (194, "\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000 \000\002\000A\128\000\000\129\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\002\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\015\240\000\000\000\000\000\000\000\001\235\218\188\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\016\149\r\000(\194\rP@\200e\002\024\004\208\b\135x\018\000\0049\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\000F\180p\000\001\0001\000\003\000\020\b`\017\000 \b@\000\000\000&C\016\016\141\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\196\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\016\173\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\196\004#C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\b\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\017\173\028\000\000@\012@\000\192\005\002\024\004@\b\002\016\000\000\000\t\144\196\004#C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\004+C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\001\b\208\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\000B40\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\004+S\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\001\b\208\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\001\000\000\000\000\016\000\000@\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \128\000\004\001\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000\000\001\000@\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\016\000\000\000\000\000\000\001\000\000\000\002\000\000\000@\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\130\000\000\016\004\000\000\002\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000@\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\000\000\129\000\000\000\000\000\000\001\000\000\000\000\000\000\000\1940\000\b\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 @\000\000\000\000\000\000@\000\000\000\130\000\000\016\004\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\000\000\000\000\129\000\000\000\000\000\000\001\000\000\000\002\b\000\000@\016\000\000\b\000\000\000\000\000@\000\000\000\000\000\000@\000\000\000\130\000\000\016\004\000\000\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\000\001\000\000\000\002\b\000\000@\016\000\000\b\000\000\128\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\001\bP\192\000\004\000D\000\012B@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\001\000\000\000\002\b\000\000@\016\000\000\b\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\030\189\171\192\000@\000 \000\002\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\016\133\012\000\000@\004@\000\196$\002\024\004@\b\002\016\000\000\000\t\144\197\235\218\188\000\004\016\002\000\000 \128@\001\129\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\189\171\192\000A\000 \000\002\000\004\000\024\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\002\016\000\000@\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\235\218\188\000\004\016\002\000\000 \128@\001\129\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\189\171\192\016A\000 \000\002\b\004\000\024\016\000\000\b\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\001\235\218\188\000\004\016\002\000\000 \000@\001\129\000\000\000\128\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\128\000\000\016\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\002\000\000\000\000\000\000\000\000\000 \000\002 \000\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\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\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\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\001I\000\001 \208(\0068\204\000\002\018\001\000\000\001\004\002\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\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\bg\175j\240\000\017I\b\001 \208)\0068\204\000\002\018\001\000 \001\004\002\025\235\218\188\000\004RB\000H4\nA\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\000\000\016@!\128\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\bg\175j\240\000\017I\b\001 \208)\0068\204\000\002\018\001\000 \001\004\002\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000@\000\000\000\000\000\000\016\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\t\000\000\003\019\004\217d\176\000\000\005\000 @\000\006\232\004'\199p\000\000\000\000\000@\000\000\000\128\000\000\016\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\246\175\000\001\020\144\128\018\r\"\144c\156\192\000! \016\002\000\016H!\158\189\171\192\000E$ \004\131@\164\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\012L\019e\146\192\000\000\020\000\129\000\000\027\160\016\159\029\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\178\000\t\225\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\027 \000\158\029\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\003\017\004\216D\176\000\000\005\000 \000\000\004\200\000'\131p\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\158\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\240\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\159\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\240\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\159\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\240\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\159\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\240\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\159\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\192\004\016\b`\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\224\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\158\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\224\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\158\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\240\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\159\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\240\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\158\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\224\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\224\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\158\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\224\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\224\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\158\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\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\001\000\000\000\002\000\000\000@\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\016\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\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\001\000\000\000\000\000\000\000\000\000\000\000@\000z\246\175\000\001\000\000\128\000\b\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\003\175j\208\000\016\000\b\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\004\160@\000\000\000 \000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\016\141\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\196\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\016\173\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\196\004#C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\b\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\018\129\000\000\000\000\128\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000B40\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\000B\1800\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\016\141\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\196\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\004#C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\000B\1810\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\016\141\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\196\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\016\000\000\000\001\000\000\004\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b \000\001\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\001\bP\192\000\004\000D\000\012B@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\001\000\000\000\002\b\000\000@\016\000\000\b\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\001\bP\192\000\004\000D\000\012B@!\128D\000\128!\000\000\000\000\153\012^\189\171\192\000A\000 \000\002\b\004\000\024\016\000\000\b\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\001\235\218\188\000\004\016\002\000\000 \128@\001\129\000\000\000\128\000\b\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\175j\240\000\016@\b\000\000\130\001\000\006\004\000\000\002\000\000\000\000\000\016\001\235\218\188\000\004\016\002\000\000 \128@\001\129\000\000\000\128\000\b\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\003\000\000\000@\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\000\004\001\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\b\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\007\175j\240\000\016\000\b\000\000\130\001\024\000\004\000\000\000\000\000 \000\000\128\001\235\218\188\000\004\000\002\000\000 \128F\000\001\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\246\175\000\001\000\000\128\000\b \017\128\000@\000\000\000\000\000\000\000\b\000\030\189\171\192\000@\000 \000\002\b\004`\000\016\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\001\235\218\188\000\004\000\002\000\000 \128F\000\001\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\0000\000\000\004\001\000\000\000\128\000\000\000\002 \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\001\000\000\000\002\000\000\000@\016\000\000\b\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\001\235\218\188\000\004\000\002\000\000 \128F\000\001\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\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\007\175j\240\000\016\000\b\000\000\130\001\024\000\004\000\000\000\000\000 \000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\"\000\000\000\000\000\000\000\000\000\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\002\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\b\128\001\235\218\188\000\004\000\002\000\000 \128F\000\001\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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:\246\173\000\001\004\000\128\000\000\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000A\000\000\000\002\016\000\000@\016\000\000\b\000\000\000\000\000\000\007\175j\240\000\016@\b\000\000\130\001\000\006\004\000\000\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\016\133\012\000\000@\004@\000\196$\002\024\004@\b\002\016\000\000\000\t\144\197\235\218\188\000\004\016\002\000\000 \128@\001\129\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000@\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\030\189\171\192\000E$ \004\131@\164\024\2270\000\bH\004\000\128\004\016\b`\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\b\000\000\000\000\000\000\005$\000\004\131P\160\024\2270\000\bH\004\000\000\004\016\b`\000\000\000\000\001I\000\001\000\206(\006\248\204\000\006\018\001\000\168\001\004\018\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\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\158\189\171\192\000E$ \004\131@\164\024\2270\000\bH\004\000\128\004\016\b`\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\b\000\000\000\000\b\000\000\003\000\004\024\020\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001\000\206(\006\248\204\000\006\018\001\000\168\001\004\018\024\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\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\007\175j\240\000\017I\b\001 \208)\0068\204\000\002\018\001\000 \001\004\002\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\002\000\000\000\000\000\000\001I\000\001\000\196(\0068\200\000\006\018\001\000\000\001\004\002\024\000\000\000\000\000R@\000@3\138\001\1903\000\001\132\128@*\000A\004\134\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\128\000\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\001\000\206(\006\248\204\000\006\018\001\000\168\001\004\018\024\000\000\000\000\000R@\000@3\138\001\1903\000\001\132\128@*\000A\000\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\012L\019e\146\192\000\000\020\000\129\000\000\027\160\016\149\029\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\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\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\000\000\000\000\000\000\000\000\000\000\000R@\000H5\n\001\1583\000\000\132\128@\b\000A\000\134\000\000\000\000\000\020\144\000\016\012\226\128o\140\192\000a \016\n\128\016A!\128\000\000\000\000\001\000\000\000\002\000\000\000@\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\004\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\002@\000\000\196\1936Y,\000\000\001@\b\016\000\001\186\001\tQ\220\000\000\000\000\000R@\000@0\n\001\1422\000\001\132\128@\000\000A\000\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\002\000\000\000\192\129\006I(\000\000\001\000\000\016\000\001\n\001\b\016\024\000\000\000\000\000\016\000\000\000 \000\000\004\001\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\030\189\171\192\000E$ \004\131H\164\024\2310\000\bH\004\000\128\004\018\bg\175j\240\000\017I\b\001 \210)\0069\204\000\002\018\001\000 \001\004\002\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\007\175j\240\000\017I\b\001 \210)\0069\204\000\002\018\001\000\000\001\004\130\025\235\218\188\000\004RB\000H4\138A\142s\000\000\132\128@\b\000A\000\134\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\001\000\000\000\000\000\000\000@\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\000\000A\000\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\002@\000\000\192\129\022I(\000\000\001\000\000\016\000\001\170\001\b\193\024\000\000\000\000\000\016\000\000\000 \000\000\004\001\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\030\189\171\192\000E$ \004\131H\164\024\2310\000\bH\004\000\128\004\018\b`\000\000\002@\000\000\192\001\022\001(\000\000\001\000\000\000\000\001\162\000\b\193\024\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\0000\000E\128J\000\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\0000\001\004\002\024\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\020\144\000\018\r\002\128c\140\192\000! \016\002\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\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\144\000\0000\000E\128J\000\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\144\000\0000\000E\128J\000\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\144\000\0000\000E\128J\000\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\144\000\0000\000E\128J\000\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\144\000\0000\000E\128J\000\000\000@\000\000\000\000H\128\0020\006\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\189\171\192\000E$ \004\131H\164\024\2310\000\bH\004\000\128\004\018\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\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\016\000\000\000 \000\000\004\001\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\007\175j\240\000\017I\b\001 \210)\0069\204\000\002\018\001\000 \001\004\130\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\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\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\016\000\000\000 \000\000\004\001\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\t\000\000\003\003\004\025$\176\000\000\004\000\000@\000\006h\004$D`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\020\144\000\016\012\194\128o\140\192\000a \016\b\128\016@!\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\001I\000\001\000\204(\006\248\204\000\006\018\001\000\136\001\004\002\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\128\000\000\000\000\000\000\000\000\b\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\0000\000A\128J\000\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\128\000\0000\000A\128J\000\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\128\000\0000\000A\128J\000\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\128\000\0000\000A\128J\000\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\128\000\0000\000A\128J\000\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\128\000\0000\000A\128J\000\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\020\144\000\016\012\226\128o\140\192\000a \016\n\128\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\016\000\000\000\000\000\000R@\000@3\138\001\1903\000\001\132\128@\"\000A\004\134\000\000\000\000\000\020\144\000\016\012\226\128o\140\192\000a \016\n\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\016\000\000\000\000\000\000R@\000@3\138\001\1903\000\001\132\128@*\000A\004\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\001\000\000\000\000\000\000\000\000\000\000\002\000\000\004\000\000\000\000\000\016\005$\000\004\131@\160\024\2270\000\bH\004\000\000\004\016\b`\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\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\000R@\000H4\n\001\1423\000\000\132\128@\000\000A\000\134\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\002\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\000\000\000\000\000\000\005$\000\004\131P\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\235\218\188\000\004RB\000H4\nA\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\t\000\000\003\000\004X\020\160\000\000\004\000\000\000\000\006\136\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\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\030\189\171\192\000E$ \004\131@\164\024\2270\000\bH\004\000\128\004\016\b`\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\144\000\0001\016M\133K\000\000\000P\002\000\000\000l\128\002|w\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\189\171\192\000E$ \004\131@\164\024\2270\000\bH\004\000\128\004\016\b`\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\144\000\0001\016M\133K\000\000\000P\002\000\000\000l\128\002|w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\016\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\000B\0200\000\001\000\017\000\003\016\144\b`\017\000 \b@\000\000\000&C\023\175j\240\000\016@\b\000\000\130\001\000\006\004\000\000\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\001\000\000\000\000\000\000\000\000\000\000\000@\000z\246\175\000\001\004\000\128\000\b\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\004\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\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\016\000\000\0000\001\000\004\001\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\001\000\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\128\000\000\000\000\000\000\000^\189\171\192\000@\000 \000\002\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\001\235\218\188\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\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\001\000\000\000\000\000\000\000\000\002\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\031\255\175\224\129E\164)\004\003\024\167\028\227\240\128\025\234\012\000\017\165\016(g\175j\240\000\016\000\b\000\000\128\001\000\000\004\000\000\000\000\000\000\000\000\000\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\004\160@\000\000\000 \000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\0008\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\006\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\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\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\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\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\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\129\000\000\000\000\128\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\192\000\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\224\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\192\000\000\000\024\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\002\000\000\000\000\000\000\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\006\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\225\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\192\000\000\000\024\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\016\000\000\000\001\000\000\004\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b \000\001\000@\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\002\140 \145\004\000\198\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\001\000\000\000\002\b\000\000@\016\000\000\b\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\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\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\000\000\000\000\000\000\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\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\246\175\000\001\000\000\128\000\b\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\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\016\000\030\189\171\192\000@\000 \000\002\000\004\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\000@\n0\130D\016\003\024@\000\001$\000!\218\004\128\001\012\000\000z\246\175\000\001\004\000\128\000\b \016\000`@\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\000\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\004\000\000\000\b@\000\001\000@\000\000 \000\000\000\000\000\000\030\189\171\192\000A\000 \000\002\b\004\000\024\016\000\000\b\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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@\004\000\163\b$A\0001\132\000\000\018@\002\029\160H\000\016\192\000\007\175j\240\000\016@\b\000\000\130\001\000\006\004\000\000\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\235\218\180\000\004\000\002\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001(\016\000\000\000\b\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\001\128\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\004\160@\000\000\000 \000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\0008\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\006\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\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\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\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\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0008A\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\006\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\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\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\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\001\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\b\000\000@\016\000\000\b\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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@\004\000\163\b$A\0001\132\000\000\018@\002\029\160H\000\016\192\000\000\000\000\000\000\000@\000\000\000\130\000\000\016\004\000\000\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\002\000\000\000\000\000\000\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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@\004\000\163\b$A\0001\132\000\000\018@\002\029\160H\000\016\192\000\007\175j\240\000\016@\b\000\000\130\001\000\006\004\000\000\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000!\000\000\004\001\000\000\000\128\000\000\000\000\000\000z\246\175\000\001\004\000\128\000\b \016\000`@\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\002\140 \145\004\000\198\016\000\000I\000\bv\129 \000C\000\000\030\189\171\192\000A\000 \000\002\b\004\000\024\016\000\000\b\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\129\005\164\t\004\003\016\161\028\2270\128\025\234\012\000\017\133\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\254\191\128\001\004\000\128\000\b\000\016\000\003\000\000\000 \000\000\001\128!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\246\175\000\001\004\000\128\000\b\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000@\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\020\144\000\018\rB\128g\140\192\000! \016\002\000\016@!\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\016\000\000\000 \000\000\004\001\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\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\004\000\000\000\012\000\000!\128@\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\128\000\000\016\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\189\171\192\000@\000 \000\002\b\004`\000\016\000\000\000\000\000\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\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\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\235\218\188\000\004\000\002\000\000 \128F\000\001\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\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\016\000\018\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\b\000\000\128\000\000\000\000\000\000\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\003\175j\208\000\016@\b\000\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\000\004\001\000\000\000\128\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\b\000\000\128\000\000\000\000\000\000\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\016\004\000\000\002\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\020\144\000\018\rB\128g\140\192\000! \016\002\000\016@!\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\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@\b@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\001\255\250\254\b\020ZB\144H5\nq\206?\b\001\158\160\192\t\030Q\134\134\000\000\000$\000\004\012L\019m\146\192\001\000T\000\129 \000\027\160\016\020\029\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\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\025\235\218\188\000\004RB\000H4\nA\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\t\000\000\003\017\004\216T\176\000\000\005\000 \000\000\006\136\000\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\000R@\016H4\n\001\1423\000\000\132\128@\b\000A\000\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\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\001\255\250\254\015\020ZB\144@1\138q\206?\b\001\158\160\192\001\026Q\002\134\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\136\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\007\255\235\248 Qi\nA\000\196)\1998\252 \006z\131\000\004iD\n\025\255\250\254\b\020ZB\144H5\011q\206?\b\001\158\160\192\t\026QB\134z\246\175\000\001\020\144\128\018\r\002\144c\140\192\000! \016\002\000\016@!\128\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\020\144\000\016\012B\128c\140\128\000a \016\000\000\016@!\128\000\000\000\000\005$\000\004\003\000\160\024\227 \000\024H\004\000\000\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\004\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\001I\000\001\000\192(\0068\200\000\006\018\001\000\000\001\004\002\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\t\000\000\003\019\004\217d\176\000\000\005\000 @\000\006\168\004\005\007p\000\000\000\000\000@\000\000\000\128\000\000\016\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\246\175\000\001\020\144\128\018\r\"\144c\156\192\000! \016\002\000\016H!\128\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\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\016\000\000\000 \000\000\004\001\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\t\000\000\003\017\004\216D\176\000\000\005\000 \000\000\006\136\000\005\007p\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\020\144\000\018\r\002\128c\140\192\000! \016\002\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\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\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\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\"\000\001@\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\192\004\016\b`\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\"\000\001@\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\"\000\001@\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\"\000\001@\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\"\000\001@\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\"\000\001@\220\000\000\000\000\000R@\000@3\138\001\1903\000\001\132\128@*\000A\004\134\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\001\255\250\254\015\020ZB\144@1\138q\206?\b\001\158\160\192\001\026Q\002\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\031\255\191\240\241E\164)\004\003\024\183\028\227\241\128\025\234L\000\017\229\028kp\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\250\254\b\020ZB\144@1\138q\206?\b\001\158\160\192\001\026Q\002\134\127\254\191\130\005\022\144\164\018\rB\220s\143\194\000g\1680\002F\148P\161\159\255\175\224\129E\164)\004\131P\167\028\227\240\128\025\234\012\000\145\165\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\031\255\191\240\129E\1649\004\195P\183\028\227\241\1289\234L\001\209\229\029kp\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\002\004\022\144$\016\012B\132s\140\194\000g\1680\000F\020@\161\128\000\000\000\129\005\164\t\004\003\016\161\028\2270\128\025\234\012\000\017\133\016(`\000\000\000\000\000@\000\000\000\128\000\000\016\004\000\000\002\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000A \208(\0068\204\000\002\018\001\000 \001\004\002\024\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\020\144\004\018\r\002\128c\140\192\000! \016\002\000\016@!\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\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\130\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\002\004\022\144$\016\012B\132s\140\194\000g\1680\000F\020@\161\128\000\000\000\129\005\164\t\004\003\016\161\028\2270\128\025\234\012\000\017\133\016(`\000\000\000\000\000@\000\000\000\002\000\000\016\004\000\000\002\000\000 \000\000\128\000\000\000\000\000\000\016\000\000\000\000\128\000\004\001\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\000\000\000\000\000\000\001\000\000\000\000\b\000\000@\016\000\000\b\000\000\000\000\002\000\000\000\000\000\000\000@\000\000\000\002\000\000\016\004\000\000\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\000\000\002\000\000 \000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\000\000\000\b\000\000@\016\000\000\b\000\000\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\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\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\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\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\175j\240\000\017I\b\001 \210)\0069\204\000\002\018\001\000 \001\004\130\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\002\004\022\144$\016\012B\132s\140\194\000g\1680\000F\020@\161\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\127\254\191\130\005\022\144\164\018\rB\156s\143\198\000g\1680\002F\148@\161\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\001\255\251\255\015\020ZB\144@1\139q\206?\024\001\158\164\192\001\030Q\198\183\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\255\250\254\b\020ZB\144@1\138q\206?\024\001\158\160\192\001\026Q\002\134\000\000\000\000\000\000\000\000\002\001\000\000\000\000\004\000\000\000\000\002\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\007\255\235\248 Qi\nA\000\198)\1998\252`\006z\131\000\004iD\n\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\001\003\019\004\219d\176\000@\021\000 H\000\006\232\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\000\000\000\016\b\004\000\000\000\000\016\000\000\000\000\b\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\007\255\235\248 Qi\nA \212)\1998\252`\006z\131\000$iD\n\220\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\254\191\130\005\022\144\164\016\012b\156s\143\198\000g\1680\000F\148@\173\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\001\235\218\188\000\004RB\000H4\138A\142s\000\000\132\128@\b\000A \134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\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\016\0000\000\000\134\001\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\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\128\000\000\016\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\189\171\192\000@\000 \000\002\b\004`\000\016\000\000\000\000\000\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\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\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\030\189\171\192\000@\000 \000\002\b\004`\000\016\000\000\000\000\000\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\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\001\000\000\000\000\000\000\000\000\000\000\000\002\000\000 \000\000\000\000\000\000\001I\000\001 \212(\006x\204\000\002\018\001\000 \001\004\002\024\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\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\235\218\180\000\004\016\002\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000\000\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\002\000\000 \000\000\000\000\000\000\001I\000\001 \212(\006x\204\000\002\018\001\000 \001\004\002\024\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\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\031\255\175\224\129E\164)\004\131P\167\028\227\241\128\025\234\012\000\145\165\016+p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\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\007\255\235\248 Qi\nA \212)\1998\252`\006z\131\000$iD\n\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\004\000\004\000\012\000\000!\128D\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\002\004\022\144$\016\012B\132s\140\194\000g\1680\000F\020@\161\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\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\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\016\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\000\127\254\255\194\005\022\144\228\019\rB\220s\143\198\000\231\1690\006G\148u\173\192\000\000\000\129\005\164\t\004\003\016\161\028\2270\128\025\234\012\000\017\133\016(`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\250\254\b\020ZB\144@1\139q\206?\b\001\158\160\192\001\030Q\198\134\000\000\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\002\000\000\000\000\031\255\175\224\129E\164)\004\003\024\183\028\227\240\128\025\234\012\000\017\229\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\016\b\004\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\255\175\224\129E\164)\004\131P\183\028\227\240\128\025\234\012\000\145\229\028h`\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\250\254\b\020ZB\144H5\011q\206?\b\001\158\160\192\t\030Q\198\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\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\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\016\000\031\255\175\224\129E\164)\004\003\024\183\028\227\240\128\025\234\012\000\017\165\020(`\000\000\000\000\000\000\000\000 \016\004\000\000\000\000\000\000\000\000 \000\001\000\001\255\250\254\b\020ZB\144@1\139q\206?\b\001\158\160\192\001\026QB\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\016\b\004\001\000\000\000\000\000\000\000\000\b\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\255\175\224\129E\164)\004\131P\183\028\227\240\128\025\234\012\000\145\165\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\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\192\004\002\024\004\000\000\002\000\000\000\000\001\000\000\000\000\000\000\000\000\001\000\012\004\000\000\000\000\000\002\000\000\000\b\000\000\016\001\127\254\191\130\005\022\144\164\016\012b\156s\143\194\000g\1680\000F\148@\161\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@0\016\000\000\000\000\000\b\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\127\254\191\130\005\022\144\228\019\rB\156s\143\194\000\231\1680\002F\148D\161\223\255\175\224\129E\164)\004\003\024\167\028\227\240\128\025\234\012\000\017\165\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\127\254\191\130\005\022\144\228\019\rB\156s\143\194\000\231\1680\002F\148D\161\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\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\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\016\000\031\255\175\224\129E\164)\004\131P\183\028\227\240\128\025\234\012\000\145\165\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\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\002\001\000\000\000\000\004\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\007\255\235\248 Qi\nA \212)\1998\252`\006z\131\000$iD\n\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\007\191\235\248\000\017I\nA\000\192)\0068\248\000\006\018\001\000\000\tD\n\024\000\000\000\000\000R@\016H4\n\001\1423\000\000\132\128@\b\000A\000\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\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\001\239\250\254\000\004RB\144@0\nA\142>\000\001\132\128@\000\002Q\002\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\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\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\030\189\171\192\000A\000 \000\002\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\128\000\000\016\004\000\000\002\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\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\012\000\000!\128@\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\128\000\000\016\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\189\171\192\000@\000 \000\002\b\004`\000\016\000\000\000\000\000\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\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\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\001 \212(\006x\204\000\002\018\001\000 \001\004\002\024\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\014\189\171@\000A\000 \000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\128\000\000\016\004\000\000\002\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\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\255\175\224\000E$)\004\003\000\164\024\227\224\000\024H\004\000\000%\016(`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\000\004\001\000\000\000\128\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\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\001 \212(\006x\204\000\002\018\001\000 \001\004\002\024\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\t\000\001\003\003\004\027$\176\000@\020\000\000H\000\006(\004\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\235\218\188\000\004RB\000H4\138A\142s\000\000\132\128@\b\000A \134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\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\016\0000\000\000\134\001\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\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\128\000\000\016\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\189\171\192\000@\000 \000\002\b\004`\000\016\000\000\000\000\000\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\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\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\001 \212(\006x\204\000\002\018\001\000 \001\004\002\024\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\014\189\171@\000A\000 \000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\128\000\000\016\004\000\000\002\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\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\001\000\003\000\016\b`\016\000\000\b\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\004\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\016 \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\001\255\250\254\b\020ZB\144@1\138q\206?\b\001\158\160\192\001\026Q\002\134\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\031\255\175\224\129E\164)\004\131P\167\028\227\240\128\025\234\012\000\145\229\024h`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\b@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\250\254\000\004\016\002\000\000 \000@\000\012\000\000\000\128\000\000\006\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\004\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\005\255\250\254\b\020ZB\144@1\138q\206?\b\001\158\160\192\001\026Q\002\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\031\255\175\224\129E\164)\004\003\024\167\028\227\240\128\025\234\012\000\017\165\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\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\016\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\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\001\000\000\000\000\000\000\000\000\002\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\b\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\005\164\t\004\003\016\161\028\2270\128\025\234\012\000\017\133\016(`\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\004\000\000\000\b\016Z@\144@1\n\017\2063\b\001\158\160\192\001\024Q\002\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\129\005\164\t\004\003\016\161\028\2270\128\025\234\012\000\017\133\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\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\016\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\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\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\250\254\000\004\016\002\000\000 \000@\000\012\000\000\000\128\000\000\002\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_\255\175\224\000A\000 \000\002\000\004\000\000\192\000\000\b\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\250\254\000\004\016\002\000\000 \000@\000\012\000\000\000\128\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\000\000\000\000\000\000\000\002\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\b\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\175j\240\1288\130\t\018@\132\003\000\000\004\144\000\133(R\000\0060\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\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000@\004\000\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\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\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@\004\000\162\b\004A\000\001\000\000\000\002@\002\029\160H\000\016\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\000\000\000\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\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\b\000\000\000\000\002\000\000 \000\000\000\000\000\002\000\b\b\000\000\000\000\000\016\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\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\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\b\000\000\000\000\000\000\002 \000\000\000\000\000\002\000\b\b\000\000\000\000\000\016\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\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\000z\246\175\000\003\128 \145\004\b@0\000\000I\000\bR\005 \000c\000\000\030\189\171\192\000\224\b \001\002\016\012\000\000\018@\002\020\129H\000\024\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000@\n \130F\016\000\016\000\000\000$\000!\218\004\128\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@\004\000\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\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\128\000\000\000\000\000\000\002\000\000\000\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\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\b\000\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\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\b\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000z\246\175\000\003\128 \144\004\b@0\000\000I\000\bR\005 \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\007\175j\240\0008\002\b\000@\132\003\000\000\004\144\000\133 R\000\006\016\000\000\000\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\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\b\000\000\000\000\000\000\000 @\000\000\016\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\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\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\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\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\192\000\000\000\016\001\000(\130\t\016@\000@\000\000\002\144\000\135h\018\000\0048\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\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\001\012\000\000\000\001\000\016\002\136 \145\004\000\132\000\000\000)\000\bv\129 \000C\128\000\000\000@\004\000\162\b$A\000\001\000\000\000\002@\n\029\160H\000\016\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\002\000\000\000@\004\000\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\192\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\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\000z\246\175\000\001\000\000\128\000\b\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\b\016\001\235\218\188\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\000\000\000\000\000\000\000\000\000\000@\000\000\016\001\000(\130\t\016@\000`\000\000\000\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\000\000\000\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\000\000\000\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\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\024\000\000\000\000\004\000\000\000\b\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\000(\130\t\016@\004@\000\000\000\144\000\135h\018\000\0040\000\000\000\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\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\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\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\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\192\000\000\000\016\001\000.\130\t\016@\001@\000\000\002\144\000\135h\018\000\0048\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\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\001\012\000\000\000\001\000\016\002\136 \145\004\000\132\000\000\000)\000\bv\129 \000C\128\000\000\000@\004\000\162\b$A\000\001\000\000\000\002@\n\029\160H\000\016\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\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\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\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\016\001\002(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\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\128\000\000\000\000\000\000\002\000\000\000\001\000\016\"\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\001\000\000\000\002\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\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\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\192\000\000\000\016\001\000(\130\t\016@\b@\000\000\002\144\000\135h\018\000\0048\000\000\000\004\000@\n \130D\016\000\016\000\000\000$\000\161\218\004\128\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\002\000\000\000@\004\000\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\192\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\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\n\001\b\016\002\136 \145\004\000\006\000\000\000\t\000\bv\129 \000C\000\000\000\000@\004\000\162\b$A\000\001\128\000\000\002@\002\029\160H\000\016\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\004\000@\n \130D\016\000\024\000\000\000$\000!\218\004\128\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@\004\000\162H$A\000%\000\000\000\n@\002\029\160H\000\016\224\000\000\000\016\001\000(\130\t\016@\000@\000\000\000\144\002\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\162\b$A\000\001\128\000\000\002@\002\029\160H\000\016\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\004\000@\n \130D\016\000\024\000\000\000$\000!\218\004\128\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\002\000\000\000\000\000\000\000\b\000\000\000\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\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\004\000\000\000\b\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\b\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\016\000\000\000\001\000\000\000\000\000\000\128\128\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\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\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\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\000\000\000\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\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\024@\000\000\000\004\000\000\000\b\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\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\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\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\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\001\012\000\000\000\001\000\016\002\232 \145\004\000\020\000\000\000)\000\bv\129 \000C\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\192\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\000z\247\175\016\003\136 \145\004\bD\016\000\000I\000\bv\129 \000C\000\000\000\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\001\000(\130\001\016@\000@\000\000\000\144\000\135h\018\000\0040\000\000\000\004\000@\011\164\130D\016\002X\000\000\000\164\000!\218\004\128\001\014\000\000\000\001\000\016\002\136 \145\004\000\132\000\000\000\t\000\bv\129 \000C\000\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\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\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\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\016\000\000\000\000\000\000\030\189\235\196\000\226\b$A\002\017\132\000\000\018@\002\029\160H\000\016\192\000\000\000\016\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\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\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\192\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\016\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\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\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\189\171\194\000\226\b$I\002\016\012\000\000\018@\002\020\161H\000\024\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\020\144\000\018\r\003\128c\140\192\000! \016\002\000\016@!\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\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\127\254\255\194\005\022\144\164\018\015C\156s\143\194\000g\1690\002F\148@\173\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\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\000\007\255\239\252 Qi\nA \244)\1998\252 \006z\147\000$iD\n\221\239\251\255\000\004\000\002\000\000 \000@\000\000\000\000\000\004\000\000\000\000\000\000{\254\255\192\001\000\000\128\000\b\000\016\000\000\000\000\000\001\000\000\000\000\000\000\030\255\191\240\000@\000 \000\002\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\004!C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\001\bP\192\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000B\0200\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\016\133\012\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\031\255\175\224\241E\164)\004\003\024\167\028\227\240\128\025\234\012\000\017\165\016(g\255\235\248 Qi\nA\000\198)\1998\252 \006z\131\000\004iD\n\024\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\254\191\130\005\022\144\164\016\012b\156s\143\194\000g\1680\000F\148@\173\192\000\000\000\000\000\000\000\000\128@\000\000\000\000\000\000\000\000\000\128\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\000\000\000\000\000\004\002\001\000\000\000\000\000\000\000\000\000\002\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\007\255\235\248 Qi\nA \212)\1998\252 \006z\131\000$iD\n\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\144\000\016\012\226\128o\140\192\000a \016\n\128\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\250\254\015\020ZB\144@1\138q\206?\b\001\158\160\192\001\026Q\002\134\127\254\191\130\005\022\144\164\016\012b\156s\143\194\000g\1680\000F\148@\161\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\007\255\235\248 Qi\nA\000\198)\1998\252 \006z\131\000\004iD\n\220\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\254\191\131\197\022\144\164\016\012b\156s\143\194\000g\1680\000F\148@\161\159\255\175\224\129E\164)\004\003\024\167\028\227\240\128\025\234\012\000\017\165\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\030\255\191\240\000A\000 \000\002\000\004\000\000\000\000\000\b@\000\000\000\000\000\000\016\133\012\000\000@\000\000\000\192\000\002\024\004\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\016\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\000\134\001\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\189\171\192\000@\000 \000\002\b\004`\000\016\000\000\000\000\000\128\000\002\000\007\175j\240\000\016\000\b\000\000\130\001\024\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\136\000\030\189\171\192\000@\000 \000\002\b\004`\000\016\000\000\000\000\000\000\000\002\000\007\175j\240\000\016\000\b\000\000\130\001\024\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\002 \000z\246\175\000\001\000\000\128\000\b \017\128\000@\000\000\000\000\002\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\0000\000\000\004\001\000\000\000\128\000\000\000\002 \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\001\000\000\000\002\000\000\000@\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000z\246\175\000\001\000\000\128\000\b \017\128\000@\000\000\000\000\002\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\254\191\130\005\022\144\164\018\rB\156s\143\194\000g\1680\002F\148A\161\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\004\002\001\000\000\000\000\000\000\000\000\000\002\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\007\255\235\248 Qi\nA \212)\1998\252 \006z\131\000$iD\n\220\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\bP\192\000\004\000\004\000\012\000\000!\128@\000\000!\000\000\000\000\000\012@\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\000\000\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\000R@\000H4\014\001\1423\000\000\132\128@\b\000A\000\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\251\255\b\020ZB\144H=\014q\206?\b\001\158\164\192\t\026Q\002\183\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\031\255\191\240\129E\164)\004\131\208\167\028\227\240\128\025\234L\000\145\165\016+p\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\251\255\b\020ZB\144@1\138q\206?\b\001\158\164\192\001\026Q\002\183\000\000\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\002\000\000\000\012_\255\191\240\129E\164)\004\003\024\167\028\227\240\128\025\234L\000\017\165\016+p\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\251\255\b\020ZB\144H5\nq\206?\b\001\158\164\192\t\026Q\002\183\127\254\255\194\005\022\144\164\016\012b\156s\143\194\000g\1690\000F\148@\173\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@ \016\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\127\254\255\194\005\022\144\164\018\rB\156s\143\194\000g\1690\002F\148@\173\192\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\239\252 Qi\nA \212)\1998\252 \006z\147\000$iD\n\220\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\254\255\194\005\022\144\164\018\rB\156s\143\194\000g\1690\002F\148@\173\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\016\133\012\000\000@\000@\000\192\000\002\024\004\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\000\000\000\000\000\000\000\000\000\000\000\127\254\255\194\005\022\144\164\018\rB\156s\143\194\000g\1690\002F\148@\173\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@ \016\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\127\254\255\194\005\022\144\164\018\rB\156s\143\194\000g\1690\002F\148@\173\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\016\133\012\000\000@\000@\000\192\000\002\024\004\000\000\002\016\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\004\000\000@\000\000\000\000\000\000\000\000\004\t\018\224\006\000\000\001\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\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\b\000\000\004\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\b\000\000@\128\000\000\000\000\000\000\000\004\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\004\b\000\000\000\000\000\000\000\000@\000\000\000 \000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\002\000\000\016 \000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\b\001\000\000\000\000\000\000\000 \000\001\002\000\000\000\000\000\000\000\000\016\000\000\000\b\000\000\000\000\001\000\000\000\000\004\000\000\000\000\000\000\000\000\004\024\001\000\000\128P\000\000\000\000\000\000\002\000\000\016 \000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\128\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000@\000\000\000\000\000\000\000\000A\128\016\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\016\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\b\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\014\000`\000\000\016\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\004\024\001\128\000\000@\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\001\006\000@\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\016`\004\000 \001\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016`\004\000\000\001\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\000A\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\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\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\016\000\000\000\000\000\000\000\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\014\000`\000\000\016\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000A\128\024\000\000\004\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\016`\004\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\024\001\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\006\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\006\000`\000\000\016\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000A\128\016\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016`\004\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\024\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\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\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\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\128\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\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\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\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\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") + (194, "\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000 \000\002\000A\128\000\000\129\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\002\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\015\240\000\000\000\000\000\000\000\001\235\218\188\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\016\149\r\000(\194\rP@\200e\002\024\004\208\b\135x\018\000\0049\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\000F\180p\000\001\0001\000\003\000\020\b`\017\000 \b@\000\000\000&C\016\016\141\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\196\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\016\173\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\196\004#C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\b\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\017\173\028\000\000@\012@\000\192\005\002\024\004@\b\002\016\000\000\000\t\144\196\004#C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\004+C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\001\b\208\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\000B40\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\004+S\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\001\b\208\192\000\004\000D\000\012\002@!\128D\000\128!\000\000\000\000\153\012@B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\001\000\000\000\000\016\000\000@\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \128\000\004\001\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000\000\001\000@\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\016\000\000\000\000\000\000\001\000\000\000\002\000\000\000@\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\130\000\000\016\004\000\000\002\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000@\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\000\000\129\000\000\000\000\000\000\001\000\000\000\000\000\000\000\1940\000\b\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 @\000\000\000\000\000\000@\000\000\000\130\000\000\016\004\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\000\000\000\000\129\000\000\000\000\000\000\001\000\000\000\002\b\000\000@\016\000\000\b\000\000\000\000\000@\000\000\000\000\000\000@\000\000\000\130\000\000\016\004\000\000\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\000\001\000\000\000\002\b\000\000@\016\000\000\b\000\000\128\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\001\bP\192\000\004\000D\000\012B@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\001\000\000\000\002\b\000\000@\016\000\000\b\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\030\189\171\192\000@\000 \000\002\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\016\133\012\000\000@\004@\000\196$\002\024\004@\b\002\016\000\000\000\t\144\197\235\218\188\000\004\016\002\000\000 \128@\001\129\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\189\171\192\000A\000 \000\002\000\004\000\024\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\002\016\000\000@\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\235\218\188\000\004\016\002\000\000 \128@\001\129\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\189\171\192\016A\000 \000\002\b\004\000\024\016\000\000\b\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\001\235\218\188\000\004\016\002\000\000 \000@\001\129\000\000\000\128\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\128\000\000\016\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\002\000\000\000\000\000\000\000\000\000 \000\002 \000\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\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\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\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\001I\000\001 \208(\0068\204\000\002\018\001\000\000\001\004\002\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\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\bg\175j\240\000\017I\b\001 \208)\0068\204\000\002\018\001\000 \001\004\002\025\235\218\188\000\004RB\000H4\nA\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\000\000\016@!\128\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\bg\175j\240\000\017I\b\001 \208)\0068\204\000\002\018\001\000 \001\004\002\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000@\000\000\000\000\000\000\016\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\t\000\000\003\019\004\217d\176\000\000\005\000 @\000\006\232\004'\199p\000\000\000\000\000@\000\000\000\128\000\000\016\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\246\175\000\001\020\144\128\018\r\"\144c\156\192\000! \016\002\000\016H!\158\189\171\192\000E$ \004\131@\164\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\012L\019e\146\192\000\000\020\000\129\000\000\027\160\016\159\029\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\178\000\t\225\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\027 \000\158\029\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\003\017\004\216D\176\000\000\005\000 \000\000\004\200\000'\131p\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\158\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\240\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\159\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\240\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\159\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\240\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\159\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\240\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\159\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\192\004\016\b`\000\000\000\000\000\000\004@\000\000\004\000\000\000@\b\000\000\0000\000\t\160\196\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\004\000\000\000\000\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\224\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\158\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\224\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\158\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\240\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\159\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\240\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\158\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\224\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\224\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\158\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\224\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\0012\000\t\224\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\019 \000\158\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\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\001\000\000\000\002\000\000\000@\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\016\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\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\001\000\000\000\000\000\000\000\000\000\000\000@\000z\246\175\000\001\000\000\128\000\b\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\003\175j\208\000\016\000\b\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\004\160@\000\000\000 \000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\016\141\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\196\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\016\173\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\196\004#C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\b\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\018\129\000\000\000\000\128\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000B40\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\000B\1800\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\016\141\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\196\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\004#C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\000\000\000\002d1\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\000B\1810\000\001\000\017\000\003\000\144\b`\017\000 \b@\000\000\000&C\016\016\141\012\000\000@\004@\000\192$\002\024\004@\b\002\016\000\000\000\t\144\196\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\016\000\000\000\001\000\000\004\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b \000\001\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\001\bP\192\000\004\000D\000\012B@!\128D\000\128!\000\000\000\000\153\012@\000\000\000\000\001\000\000\000\002\b\000\000@\016\000\000\b\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\016\133\012\000\000@\004@\000\192$\002\024\004@\b\002\016\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\001\bP\192\000\004\000D\000\012B@!\128D\000\128!\000\000\000\000\153\012^\189\171\192\000A\000 \000\002\b\004\000\024\016\000\000\b\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\001\235\218\188\000\004\016\002\000\000 \128@\001\129\000\000\000\128\000\b\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\175j\240\000\016@\b\000\000\130\001\000\006\004\000\000\002\000\000\000\000\000\016\001\235\218\188\000\004\016\002\000\000 \128@\001\129\000\000\000\128\000\b\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\003\000\000\000@\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\000\004\001\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\b\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\007\175j\240\000\016\000\b\000\000\130\001\024\000\004\000\000\000\000\000 \000\000\128\001\235\218\188\000\004\000\002\000\000 \128F\000\001\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\246\175\000\001\000\000\128\000\b \017\128\000@\000\000\000\000\000\000\000\b\000\030\189\171\192\000@\000 \000\002\b\004`\000\016\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\001\235\218\188\000\004\000\002\000\000 \128F\000\001\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\0000\000\000\004\001\000\000\000\128\000\000\000\002 \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\001\000\000\000\002\000\000\000@\016\000\000\b\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\001\235\218\188\000\004\000\002\000\000 \128F\000\001\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\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\007\175j\240\000\016\000\b\000\000\130\001\024\000\004\000\000\000\000\000 \000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\"\000\000\000\000\000\000\000\000\000\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\002\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\b\128\001\235\218\188\000\004\000\002\000\000 \128F\000\001\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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:\246\173\000\001\004\000\128\000\000\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000A\000\000\000\002\016\000\000@\016\000\000\b\000\000\000\000\000\000\007\175j\240\000\016@\b\000\000\130\001\000\006\004\000\000\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\016\133\012\000\000@\004@\000\196$\002\024\004@\b\002\016\000\000\000\t\144\197\235\218\188\000\004\016\002\000\000 \128@\001\129\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000@\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\030\189\171\192\000E$ \004\131@\164\024\2270\000\bH\004\000\128\004\016\b`\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\b\000\000\000\000\000\000\005$\000\004\131P\160\024\2270\000\bH\004\000\000\004\016\b`\000\000\000\000\001I\000\001\000\206(\006\248\204\000\006\018\001\000\168\001\004\018\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\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\158\189\171\192\000E$ \004\131@\164\024\2270\000\bH\004\000\128\004\016\b`\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\b\000\000\000\000\b\000\000\003\000\004\024\020\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001\000\206(\006\248\204\000\006\018\001\000\168\001\004\018\024\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\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\007\175j\240\000\017I\b\001 \208)\0068\204\000\002\018\001\000 \001\004\002\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\002\000\000\000\000\000\000\001I\000\001\000\196(\0068\200\000\006\018\001\000\000\001\004\002\024\000\000\000\000\000R@\000@3\138\001\1903\000\001\132\128@*\000A\004\134\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\128\000\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\001\000\206(\006\248\204\000\006\018\001\000\168\001\004\018\024\000\000\000\000\000R@\000@3\138\001\1903\000\001\132\128@*\000A\000\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\012L\019e\146\192\000\000\020\000\129\000\000\027\160\016\149\029\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\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\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\000\000\000\000\000\000\000\000\000\000\000R@\000H5\n\001\1583\000\000\132\128@\b\000A\000\134\000\000\000\000\000\020\144\000\016\012\226\128o\140\192\000a \016\n\128\016A!\128\000\000\000\000\001\000\000\000\002\000\000\000@\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\004\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\002@\000\000\196\1936Y,\000\000\001@\b\016\000\001\186\001\tQ\220\000\000\000\000\000R@\000@0\n\001\1422\000\001\132\128@\000\000A\000\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\002\000\000\000\192\129\006I(\000\000\001\000\000\016\000\001\n\001\b\016\024\000\000\000\000\000\016\000\000\000 \000\000\004\001\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\030\189\171\192\000E$ \004\131H\164\024\2310\000\bH\004\000\128\004\018\bg\175j\240\000\017I\b\001 \210)\0069\204\000\002\018\001\000 \001\004\002\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\007\175j\240\000\017I\b\001 \210)\0069\204\000\002\018\001\000\000\001\004\130\025\235\218\188\000\004RB\000H4\138A\142s\000\000\132\128@\b\000A\000\134\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\001\000\000\000\000\000\000\000@\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\000\000A\000\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\002@\000\000\192\129\022I(\000\000\001\000\000\016\000\001\170\001\b\193\024\000\000\000\000\000\016\000\000\000 \000\000\004\001\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\030\189\171\192\000E$ \004\131H\164\024\2310\000\bH\004\000\128\004\018\b`\000\000\002@\000\000\192\001\022\001(\000\000\001\000\000\000\000\001\162\000\b\193\024\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\0000\000E\128J\000\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\0000\001\004\002\024\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\020\144\000\018\r\002\128c\140\192\000! \016\002\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\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\144\000\0000\000E\128J\000\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\144\000\0000\000E\128J\000\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\144\000\0000\000E\128J\000\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\144\000\0000\000E\128J\000\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\t\000\000\003\000\004X\004\160\000\000\004\000\000\000\000\004\136\000#\000`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\144\000\0000\000E\128J\000\000\000@\000\000\000\000H\128\0020\006\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\189\171\192\000E$ \004\131H\164\024\2310\000\bH\004\000\128\004\018\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\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\016\000\000\000 \000\000\004\001\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\007\175j\240\000\017I\b\001 \210)\0069\204\000\002\018\001\000 \001\004\130\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\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\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\016\000\000\000 \000\000\004\001\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\t\000\000\003\003\004\025$\176\000\000\004\000\000@\000\006h\004$D`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\020\144\000\016\012\194\128o\140\192\000a \016\b\128\016@!\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\001I\000\001\000\204(\006\248\204\000\006\018\001\000\136\001\004\002\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\128\000\000\000\000\000\000\000\000\b\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\0000\000A\128J\000\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\128\000\0000\000A\128J\000\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\128\000\0000\000A\128J\000\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\128\000\0000\000A\128J\000\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\128\000\0000\000A\128J\000\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\020\144\000\018\r\002\128c\140\192\000! \016\002\000\016@!\128\000\000\b\000\000\003\000\004\024\004\160\000\000\004\000\000\000\000\004\b\000 @`\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\128\000\0000\000A\128J\000\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\020\144\000\016\012\226\128o\140\192\000a \016\n\128\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\016\000\000\000\000\000\000R@\000@3\138\001\1903\000\001\132\128@\"\000A\004\134\000\000\000\000\000\020\144\000\016\012\226\128o\140\192\000a \016\n\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\016\000\000\000\000\000\000R@\000@3\138\001\1903\000\001\132\128@*\000A\004\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\128\000!\000\000\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000\000\001\004\002\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\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\004\000\000\000\000\000\000\000\000\000\000\b\000\000\016\000\000\000\000\000@\020\144\000\018\r\002\128c\140\192\000! \016\000\000\016@!\128\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\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\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\001I\000\001 \208(\0068\204\000\002\018\001\000\000\001\004\002\024\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\b\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\000\000\000\000\000\000\005$\000\004\131P\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\235\218\188\000\004RB\000H4\nA\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\t\000\000\003\000\004X\020\160\000\000\004\000\000\000\000\006\136\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\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\030\189\171\192\000E$ \004\131@\164\024\2270\000\bH\004\000\128\004\016\b`\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\144\000\0001\016M\133K\000\000\000P\002\000\000\000l\128\002|w\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\189\171\192\000E$ \004\131@\164\024\2270\000\bH\004\000\128\004\016\b`\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\144\000\0001\016M\133K\000\000\000P\002\000\000\000l\128\002|w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\016\000\004!C\000\000\016\001\016\0000\t\000\134\001\016\002\000\132\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\000B\0200\000\001\000\017\000\003\016\144\b`\017\000 \b@\000\000\000&C\023\175j\240\000\016@\b\000\000\130\001\000\006\004\000\000\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001\bP\192\000\004\000D\000\012\002@!\128D\000\128!\000\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\001\000\000\000\000\000\000\000\000\000\000\000@\000z\246\175\000\001\004\000\128\000\b\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\004\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\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\016\000\000\0000\001\000\004\001\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\001\000\000B\0200\000\001\000\017\000\003\000\144\b`\017\000 \b@\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\128\000\000\000\000\000\000\000^\189\171\192\000@\000 \000\002\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\001\235\218\188\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\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\001\000\000\000\000\000\000\000\000\002\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\031\255\175\224\129E\164)\004\003\024\167\028\227\240\128\025\234\012\000\017\165\016(g\175j\240\000\016\000\b\000\000\128\001\000\000\004\000\000\000\000\000\000\000\000\000\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\004\160@\000\000\000 \000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\0008\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\006\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\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\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\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\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\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\129\000\000\000\000\128\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\192\000\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\224\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\192\000\000\000\024\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\002\000\000\000\000\000\000\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\006\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\225\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\192\000\000\000\024\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\016\000\000\000\001\000\000\004\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b \000\001\000@\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\002\140 \145\004\000\198\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\001\000\000\000\002\b\000\000@\016\000\000\b\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\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\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\000\000\000\000\000\000\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\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\246\175\000\001\000\000\128\000\b\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\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\016\000\030\189\171\192\000@\000 \000\002\000\004\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\000@\n0\130D\016\003\024@\000\001$\000!\218\004\128\001\012\000\000z\246\175\000\001\004\000\128\000\b \016\000`@\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\000\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\004\000\000\000\b@\000\001\000@\000\000 \000\000\000\000\000\000\030\189\171\192\000A\000 \000\002\b\004\000\024\016\000\000\b\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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@\004\000\163\b$A\0001\132\000\000\018@\002\029\160H\000\016\192\000\007\175j\240\000\016@\b\000\000\130\001\000\006\004\000\000\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\235\218\180\000\004\000\002\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001(\016\000\000\000\b\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\001\128\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\004\160@\000\000\000 \000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\0008\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\006\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\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\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\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\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0008A\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\006\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\001\012\000\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\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\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\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\001\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\b\000\000@\016\000\000\b\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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@\004\000\163\b$A\0001\132\000\000\018@\002\029\160H\000\016\192\000\000\000\000\000\000\000@\000\000\000\130\000\000\016\004\000\000\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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@\004\000\163\b$A\000!\132\000\000\018@\002\029\160H\000\016\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\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\002\000\000\000\000\000\000\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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@\004\000\163\b$A\0001\132\000\000\018@\002\029\160H\000\016\192\000\007\175j\240\000\016@\b\000\000\130\001\000\006\004\000\000\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\001\000\016\002\140 \145\004\000\134\016\000\000I\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000!\000\000\004\001\000\000\000\128\000\000\000\000\000\000z\246\175\000\001\004\000\128\000\b \016\000`@\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\016\001\000(\194\t\016@\ba\000\000\004\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\002\140 \145\004\000\198\016\000\000I\000\bv\129 \000C\000\000\030\189\171\192\000A\000 \000\002\b\004\000\024\016\000\000\b\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\004\000@\n0\130D\016\002\024@\000\001$\000!\218\004\128\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\129\005\164\t\004\003\016\161\028\2270\128\025\234\012\000\017\133\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\254\191\128\001\004\000\128\000\b\000\016\000\003\000\000\000 \000\000\001\128!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\246\175\000\001\004\000\128\000\b\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000@\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\020\144\000\018\rB\128g\140\192\000! \016\002\000\016@!\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\016\000\000\000 \000\000\004\001\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\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\004\000\000\000\012\000\000!\128@\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\128\000\000\016\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\189\171\192\000@\000 \000\002\b\004`\000\016\000\000\000\000\000\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\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\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\235\218\188\000\004\000\002\000\000 \128F\000\001\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\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\016\000\018\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\b\000\000\128\000\000\000\000\000\000\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\003\175j\208\000\016@\b\000\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\000\004\001\000\000\000\128\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\b\000\000\128\000\000\000\000\000\000\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\016\004\000\000\002\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\020\144\000\018\rB\128g\140\192\000! \016\002\000\016@!\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\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@\b@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\001\255\250\254\b\020ZB\144H5\nq\206?\b\001\158\160\192\t\030Q\134\134\000\000\000$\000\004\012L\019m\146\192\001\000T\000\129 \000\027\160\016\020\029\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\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\025\235\218\188\000\004RB\000H4\nA\1423\000\000\132\128@\b\000A\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\t\000\000\003\017\004\216T\176\000\000\005\000 \000\000\006\136\000\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\000R@\016H4\n\001\1423\000\000\132\128@\b\000A\000\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\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\001\255\250\254\015\020ZB\144@1\138q\206?\b\001\158\160\192\001\026Q\002\134\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\136\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\007\255\235\248 Qi\nA\000\196)\1998\252 \006z\131\000\004iD\n\025\255\250\254\b\020ZB\144H5\011q\206?\b\001\158\160\192\t\026QB\134z\246\175\000\001\020\144\128\018\r\002\144c\140\192\000! \016\002\000\016@!\128\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\020\144\000\016\012B\128c\140\128\000a \016\000\000\016@!\128\000\000\000\000\005$\000\004\003\000\160\024\227 \000\024H\004\000\000\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\144\000\018\r\002\128c\140\192\000! \016\002\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\004\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\001I\000\001\000\192(\0068\200\000\006\018\001\000\000\001\004\002\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\t\000\000\003\019\004\217d\176\000\000\005\000 @\000\006\168\004\005\007p\000\000\000\000\000@\000\000\000\128\000\000\016\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\246\175\000\001\020\144\128\018\r\"\144c\156\192\000! \016\002\000\016H!\128\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\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\016\000\000\000 \000\000\004\001\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\t\000\000\003\017\004\216D\176\000\000\005\000 \000\000\006\136\000\005\007p\000\000\000\000\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\020\144\000\018\r\002\128c\140\192\000! \016\002\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\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\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\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\"\000\001@\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\192\004\016\b`\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\"\000\001@\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\"\000\001@\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\"\000\001@\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\"\000\001@\220\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\000\000\000$\000\000\012D\019a\018\192\000\000\020\000\128\000\000\018 \000\020\r\192\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\002@\000\000\196A6\017,\000\000\001@\b\000\000\001\"\000\001@\220\000\000\000\000\000R@\000@3\138\001\1903\000\001\132\128@*\000A\004\134\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\001\255\250\254\015\020ZB\144@1\138q\206?\b\001\158\160\192\001\026Q\002\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\031\255\191\240\241E\164)\004\003\024\183\028\227\241\128\025\234L\000\017\229\028kp\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\250\254\b\020ZB\144@1\138q\206?\b\001\158\160\192\001\026Q\002\134\127\254\191\130\005\022\144\164\018\rB\220s\143\194\000g\1680\002F\148P\161\159\255\175\224\129E\164)\004\131P\167\028\227\240\128\025\234\012\000\145\165\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\031\255\191\240\129E\1649\004\195P\183\028\227\241\1289\234L\001\209\229\029kp\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\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\002\004\022\144$\016\012B\132s\140\194\000g\1680\000F\020@\161\128\000\000\000\129\005\164\t\004\003\016\161\028\2270\128\025\234\012\000\017\133\016(`\000\000\000\000\000@\000\000\000\128\000\000\016\004\000\000\002\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000A \208(\0068\204\000\002\018\001\000 \001\004\002\024\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\020\144\004\018\r\002\128c\140\192\000! \016\002\000\016@!\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\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\130\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\002\004\022\144$\016\012B\132s\140\194\000g\1680\000F\020@\161\128\000\000\000\129\005\164\t\004\003\016\161\028\2270\128\025\234\012\000\017\133\016(`\000\000\000\000\000@\000\000\000\002\000\000\016\004\000\000\002\000\000 \000\000\128\000\000\000\000\000\000\016\000\000\000\000\128\000\004\001\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\000\000\000\000\000\000\001\000\000\000\000\b\000\000@\016\000\000\b\000\000\000\000\002\000\000\000\000\000\000\000@\000\000\000\002\000\000\016\004\000\000\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\000\000\002\000\000 \000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\000\000\000\b\000\000@\016\000\000\b\000\000\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\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\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\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\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\175j\240\000\017I\b\001 \210)\0069\204\000\002\018\001\000 \001\004\130\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\002\004\022\144$\016\012B\132s\140\194\000g\1680\000F\020@\161\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\127\254\191\130\005\022\144\164\018\rB\156s\143\198\000g\1680\002F\148@\161\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\001\255\251\255\015\020ZB\144@1\139q\206?\024\001\158\164\192\001\030Q\198\183\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\255\250\254\b\020ZB\144@1\138q\206?\024\001\158\160\192\001\026Q\002\134\000\000\000\000\000\000\000\000\002\001\000\000\000\000\004\000\000\000\000\002\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\007\255\235\248 Qi\nA\000\198)\1998\252`\006z\131\000\004iD\n\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\001\003\019\004\219d\176\000@\021\000 H\000\006\232\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\000\000\000\016\b\004\000\000\000\000\016\000\000\000\000\b\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\007\255\235\248 Qi\nA \212)\1998\252`\006z\131\000$iD\n\220\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\254\191\130\005\022\144\164\016\012b\156s\143\198\000g\1680\000F\148@\173\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\001\235\218\188\000\004RB\000H4\138A\142s\000\000\132\128@\b\000A \134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R@\000H5\n\001\1583\000\000\132\128@\b\000A\000\134\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\192\000\002\024\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\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@\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\246\175\000\001\000\000\128\000\b \017\128\000@\000\000\000\000\002\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\144\000\018\rB\128g\140\192\000! \016\002\000\016@!\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\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\246\175\000\001\000\000\128\000\b \017\128\000@\000\000\000\000\002\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\000\000\000\000\000\000\000\000\000\000\000\b\000\000\128\000\000\000\000\000\000\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\003\175j\208\000\016@\b\000\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\000\004\001\000\000\000\128\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\b\000\000\128\000\000\000\000\000\000\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\127\254\191\130\005\022\144\164\018\rB\156s\143\198\000g\1680\002F\148@\173\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\016\b\004\000\000\000\000\016\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\255\175\224\129E\164)\004\131P\167\028\227\241\128\025\234\012\000\145\165\016(`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\016\0000\000\000\134\001\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\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\b\016Z@\144@1\n\017\2063\b\001\158\160\192\001\024Q\002\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\016\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\000\000\000\000\000\000\000\000\000\000\001\000\001\255\251\255\b\020ZC\144L5\011q\206?\024\003\158\164\192\025\030Q\214\183\000\000\000\002\004\022\144$\016\012B\132s\140\194\000g\1680\000F\020@\161\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\235\248 Qi\nA\000\198-\1998\252 \006z\131\000\004yG\026\024\000\000\000\000\000\000\000\000\b\004\000\000\000\000\000\000\000\000\000\b\000\000\000\000\127\254\191\130\005\022\144\164\016\012b\220s\143\194\000g\1680\000G\148q\161\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@ \016\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\254\191\130\005\022\144\164\018\rB\220s\143\194\000g\1680\002G\148q\161\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\235\248 Qi\nA \212-\1998\252 \006z\131\000$yG\026\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\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\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\127\254\191\130\005\022\144\164\016\012b\220s\143\194\000g\1680\000F\148P\161\128\000\000\000\000\000\000\000\000\128@\016\000\000\000\000\000\000\000\000\128\000\004\000\007\255\235\248 Qi\nA\000\198-\1998\252 \006z\131\000\004iE\n\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@ \016\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\127\254\191\130\005\022\144\164\018\rB\220s\143\194\000g\1680\002F\148P\161\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\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\001\000\001\000\003\000\016\b`\016\000\000\b\000\000\000\000\004\000\000\000\000\000\000\000\000\004\0000\016\000\000\000\000\000\b\000\000\000 \000\000@\005\255\250\254\b\020ZB\144@1\138q\206?\b\001\158\160\192\001\026Q\002\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\017\000\192@\000\000\000\000\000 \000\000\000\128\000\001\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\250\254\b\020ZC\144L5\nq\206?\b\003\158\160\192\t\026Q\018\135\127\254\191\130\005\022\144\164\016\012b\156s\143\194\000g\1680\000F\148@\161\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\001\255\250\254\b\020ZC\144L5\nq\206?\b\003\158\160\192\t\026Q\018\135\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\000\000\000\000\000\000\000\000\000\000@\000\127\254\191\130\005\022\144\164\018\rB\220s\143\194\000g\1680\002F\148P\161\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\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\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\016\b\004\000\000\000\000\016\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\255\175\224\129E\164)\004\131P\167\028\227\241\128\025\234\012\000\145\165\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\030\255\175\224\000E$)\004\003\000\164\024\227\224\000\024H\004\000\000%\016(`\000\000\000\000\001I\000A \208(\0068\204\000\002\018\001\000 \001\004\002\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\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\007\191\235\248\000\017I\nA\000\192)\0068\248\000\006\018\001\000\000\tD\n\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\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\000z\246\175\000\001\004\000\128\000\b\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000@\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\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\020\144\000\018\rB\128g\140\192\000! \016\002\000\016@!\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\016\000\000\0000\000\000\134\001\000\000\000\128\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\001\000\000\000\002\000\000\000@\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\246\175\000\001\000\000\128\000\b \017\128\000@\000\000\000\000\002\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\144\000\018\rB\128g\140\192\000! \016\002\000\016@!\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\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\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\246\173\000\001\004\000\128\000\000\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000@\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\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\020\144\000\018\rB\128g\140\192\000! \016\002\000\016@!\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\001\000\000\000\000\000\000\000\000\000\000\000@\000{\254\191\128\001\020\144\164\016\012\002\144c\143\128\000a \016\000\000\148@\161\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\128\000\000\016\004\000\000\002\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\005$\000\004\131P\160\025\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\012\012\016l\146\192\001\000P\000\001 \000\024\160\016\016\017\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\000\000\000\000\000\000\000\000\000\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\007\175j\240\000\017I\b\001 \210)\0069\204\000\002\018\001\000 \001\004\130\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\004\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\001 \212(\006x\204\000\002\018\001\000 \001\004\002\024\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\001\000\001\000\003\000\000\b`\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000\000\001\000@\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\235\218\188\000\004\000\002\000\000 \128F\000\001\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R@\000H5\n\001\1583\000\000\132\128@\b\000A\000\134\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\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\020\144\000\018\rB\128g\140\192\000! \016\002\000\016@!\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\235\218\180\000\004\016\002\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000\000\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\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\000R@\000H5\n\001\1583\000\000\132\128@\b\000A\000\134\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\004\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\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\016\000\016\0000\001\000\134\001\000\000\000\128\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\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\b\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\001\002\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\255\175\224\129E\164)\004\003\024\167\028\227\240\128\025\234\012\000\017\165\016(`\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\001\255\250\254\b\020ZB\144H5\nq\206?\b\001\158\160\192\t\030Q\134\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\004\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\031\255\175\224\000A\000 \000\002\000\004\000\000\192\000\000\b\000\000\000`\b@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000_\255\175\224\129E\164)\004\003\024\167\028\227\240\128\025\234\012\000\017\165\016(`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\250\254\b\020ZB\144@1\138q\206?\b\001\158\160\192\001\026Q\002\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\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\001\000\000\000\000\000\000\000\000\002\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\004\000\000\000\000\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\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\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\016\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\000R@\000H4\n\001\1423\000\000\132\128@\b\000A\000\134\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\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\250\254\b\020ZB\144@1\nQ\206?\b\001\158\160\192\001\026Q\002\134z\246\175\000\001\020\144\128\016\012\002\144c\140\128\000a \016\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\004\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\005\255\250\254\b\020ZB\144@1\nQ\206?\b\001\158\160\192\001\026Q\002\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\007\255\235\248 Qi\nA\000\196)G8\252 \006z\131\000\004iD\n\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\004\000\000\000\000\000\000\000\000\b\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\020\144\000\018\r\002\128c\140\192\000! \016\002\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\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\254\191\128\001\004\000\128\000\b\000\016\000\003\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\023\255\235\248\000\016@\b\000\000\128\001\000\0000\000\000\002\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\254\191\128\001\004\000\128\000\b\000\016\000\003\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\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\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\001I\000\001 \208(\0068\204\000\002\018\001\000 \001\004\002\024\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\002\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\001\235\218\188 \014 \130D\144!\000\192\000\001$\000!J\020\128\001\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\b\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\016\000\000\000\000\000\000\000\000\016\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000(\130\001\016@\000@\000\000\000\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\002\000\000\000\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\000\000\000\000\000\000\128\002\002\000\000\000\000\000\004\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\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\136\000\000\000\000\000\000\128\002\002\000\000\000\000\000\004\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\189\171\192\000\224\b$A\002\016\012\000\000\018@\002\020\129H\000\024\192\000\007\175j\240\0008\002\b\000@\132\003\000\000\004\144\000\133 R\000\0060\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\002\136 \145\132\000\004\000\000\000\t\000\bv\129 \000C\000\000\000\000\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\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\004\000\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\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\128\000\000\000\000\000\000\002\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\002\004\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\030\189\171\192\000\224\b$\001\002\016\012\000\000\018@\002\020\129H\000\024@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\235\218\188\000\014\000\130\000\016!\000\192\000\001$\000!H\020\128\001\132\000\000\000\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\016\000\000\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\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\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\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\016\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\000\000\000\004\000@\n \130D\016\000\016\000\000\000\164\000!\218\004\128\001\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\000\000\000\000@\004\000\162\b$A\000!\000\000\000\n@\002\029\160H\000\016\224\000\000\000\016\001\000(\130\t\016@\000@\000\000\000\144\002\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\016\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\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\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\030\189\171\192\000@\000 \000\002\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\002\004\000z\246\175\000\001\000\000\128\000\b\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\016\000\000\004\000@\n \130D\016\000\024\000\000\000$\000!\218\004\128\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@\004\000\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\192\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\018\000\000\000\000\000\000\000\000@\004\000\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\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\128\000\000\000\000\000\000\002\000\000\000\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\001\000\000\000\002\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000@\n \130D\016\001\016\000\000\000$\000!\218\004\128\001\012\000\000\000\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\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\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\000\000\000\004\000@\011\160\130D\016\000P\000\000\000\164\000!\218\004\128\001\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\000\000\000\000@\004\000\162\b$A\000!\000\000\000\n@\002\029\160H\000\016\224\000\000\000\016\001\000(\130\t\016@\000@\000\000\000\144\002\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\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@\138 \130D\016\000\016\000\000\000$\000!\218\004\128\001\012\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\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\128\000\000\000@\004\b\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\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\001\128\000\000\000\000@\000\000\000\128\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\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\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\016\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\000\000\000\004\000@\n \130D\016\002\016\000\000\000\164\000!\218\004\128\001\014\000\000\000\001\000\016\002\136 \145\004\000\004\000\000\000\t\000(v\129 \000C\000\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\016\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\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\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\128B\004\000\162\b$A\000\001\128\000\000\002@\002\029\160H\000\016\192\000\000\000\016\001\000(\130\t\016@\000`\000\000\000\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\002\136 \145\004\000\006\000\000\000\t\000\bv\129 \000C\000\000\000\000\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\001\000(\146\t\016@\t@\000\000\002\144\000\135h\018\000\0048\000\000\000\004\000@\n \130D\016\000\016\000\000\000$\000\161\218\004\128\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\002\000\000\000@\004\000\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\192\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\016\001\000(\130\t\016@\000`\000\000\000\144\000\135h\018\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\002\136 \145\004\000\006\000\000\000\t\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\002\000\000\000\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\001\000\000\000\002\000\000\000\000\000\000\000\b\000\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\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\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\b\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\016\000\000\000\000\000\000\016\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\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\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\128\000\000\000\000\000\000\002\000\000\000\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\000\000\000\000\000\000\000\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\016\000\000\000\001\000\000\000\002\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\162\b$A\000\001\000\000\000\002@\002\029\160H\000\016\192\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\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\000\000\000\000@\004\000\186\b$A\000\005\000\000\000\n@\002\029\160H\000\016\224\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\016\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\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\030\189\235\196\000\226\b$A\002\017\004\000\000\018@\002\029\160H\000\016\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\004\000@\n \128D\016\000\016\000\000\000$\000!\218\004\128\001\012\000\000\000\001\000\016\002\233 \145\004\000\150\000\000\000)\000\bv\129 \000C\128\000\000\000@\004\000\162\b$A\000!\000\000\000\002@\002\029\160H\000\016\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\001\000\016\002\136 \145\004\000\004\000\000\000\t\000\bv\129 \000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\000\000\000\000\000\000\007\175z\241\0008\130\t\016@\132a\000\000\004\144\000\135h\018\000\0040\000\000\000\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\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\016\001\000(\130\t\016@\000@\000\000\000\144\000\135h\018\000\0040\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\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000@\n \130D\016\000\016\000\000\000$\000!\218\004\128\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\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\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\007\175j\240\1288\130\t\018@\132\003\000\000\004\144\000\133(R\000\0060\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\005$\000\004\131@\224\024\2270\000\bH\004\000\128\004\016\b`\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005$\000\004\131@\160\024\2270\000\bH\004\000\128\004\016\b`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\255\191\240\129E\164)\004\131\208\231\028\227\240\128\025\234L\000\145\165\016+p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\251\255\b\020ZB\144H=\nq\206?\b\001\158\164\192\t\026Q\002\183{\254\255\192\001\000\000\128\000\b\000\016\000\000\000\000\000\001\000\000\000\000\000\000\030\255\191\240\000@\000 \000\002\000\004\000\000\000\000\000\000@\000\000\000\000\000\007\191\239\252\000\016\000\b\000\000\128\001\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\001\bP\192\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000B\0200\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\016\133\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\004!C\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\007\255\235\248\218L\148F\nL\148G&L\148\000\000L\148G\174L\148H\202L\148IRL\148\000\000L\148JnL\148J\246L\148\000\000\000\000L\148\000\000\002\196\000\000\000\000\000\017\000\000\000\000\000\000\003\006\000\000\003\\\000\000\000\020L\148\000\000\000\020\000\000\000\000\000b/\164\000\000\026\016\022\016\000\000\0032_\018\022\016\000\000\000\000Y<_(\022\016\000\000\000\000\022\016\000\000\000\000\022\016\000\000\022\016\000\000\003\148\0048\022\016\000\000\022\016\000\000\022\016\000\000\022\016\000\000\005\144_,\022\016\000\000\000\000Yd_R\022\016\000\000\000\000\022\016\000\000\000\000\022\016\000\000\022\016\000\000\004:\005Z\022\016\000\000\022\016\000\000_\150\022\016\000\000\000\000\022\016\000\000O\244_\210\022\016\000\000\000\000\022\016\000\000\022\016\000\000\000\000\022\016\000\000\022\016\000\000\007\212\000\017\005\004\022\016\000\000VF\000\017\005 \022\016\000\000\000\000\022\016\000\000\022\016\000\000\022\016\000\000\005X\005\188\022\016\000\000Yd5\222\000\000\000\000\005l\022\016\000\0005\222\000\000\000\000:N8\022\000\000\001f\0060\000\017\005\132\006V;j;j\000\000\000\000\000\000\000\195JR;j\001X=\162\000\000\000\000\000\000\006h\006L\002\162\006r;j\000\000\000\000\005\192\000\000\005\208\006\166;j\005\222\000\000\000+\000\000\007|\000\000\000\000\002\004C\194\000\000\000\000\000\000\006\n\007\b\000\000\007,\000\000(P\001f5\222\006P\022\016\000\000^\1305\222\006^\022\016\000\000\000\000\000\000\000\017\007T\000\000\000\000\000\000\000b\000\000\000\000\029J\006p\000\000\006tZb+\214\000\000Z\242\029J\006x\000\000\006~*\164+\214L\148\006\132\000\000\029J\006\132\000\000\006\136k$+\214L\148\000\232L\148\006\134\000\000\000\000+\214+\214\000\000\000\000\000\000\000\000).\000\000\000\000\000\000\000\000\000\000Xf\000\000\000\000\001(\007NL\148+\214\000\017\000\000Xf\000\000\000\000Xf\000\000\000\006\000\000*Vk$\000\000\000\000\024x\000\017\000\000\023\174\023\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000Xf\000\000\000\000\002\138\028.\023\174Xf\000\000\000\000Xf\000\000\000\006\000\000Zb\000\000\000\000kt\000\017\000\000\023\174\0272L\148\000\000L\148\000\000\000\000\000\000\000\000\000\000\006\146\000\000\000\000\000\000\000\000\000\000\000\000\000\000?\000\000\002\162\007:\022\016\000\000\000\000\001p/\164\000\000/\164\000\000\007(\000\000\001p\000\000\019\152+V\022,\000\000\007\166\022:\022,\000\000\000\000MdO\180\022,\000\000\000\000\022,\000\000\000\000\022,\000\000\022,\000\000\007r\007\162\022,\000\000\022,\000\000\022,\000\000\022,\000\000\b\208P:\022,\000\000\000\000M\142Q\170\022,\000\000\000\000\022,\000\000\000\000\022,\000\000\022,\000\000\007x\007\166\022,\000\000\022,\000\000Q\194\022,\000\000\000\000\022,\000\000\022,Q\210\022,\000\000\000\000\022,\000\000\022,\000\000\000\000\022,\000\000\022,\000\000\007\226\000\017\007N\022,\000\000\022,\000\017\007P\022,\000\000\000\000\022,\000\000\022,\000\000\022,\000\000\007\128\007\174\022,\000\000/\164\000\000\007`\000\000\004T/\164\000\000\000\000\004T\000\000\000\000\022:5\222\007Z\022,\000\000\000\000\000\000\000\026\000\000\000\000\000\031\000\026\000\000\000\000\000\000\bT\000\000\007\1845\222\007b\022,\000\000\030\1865\222\007h\022,\000\000\000\000\030,\022,\000\000\t:R>\022,\000\000\000\000N\000RV\022,\000\000\000\000\022,\000\000\000\000\022,\000\000\022,\000\000\007\154\007\204\022,\000\000\022,\000\000\022,\000\000\022,\000\000\011\212Rd\022,\000\000\000\000N\006R|\022,\000\000\000\000\022,\000\000\000\000\022,\000\000\022,\000\000\007\178\007\224\022,\000\000\022,\000\000R\150\022,\000\000\000\000\022,\000\000K\244R\176\022,\000\000\000\000\022,\000\000\022,\000\000\000\000\022,\000\000\022,\000\000\t\018\000\017\007\140\022,\000\000K\244\000\017\007\186\022,\000\000\000\000\022,\000\000\022,\000\000\022,\000\000\007\254\b4\022,\000\000Md5\222\007\220\022,\000\000\000\000\nr5\222\007\222\022,\000\000M\1425\222\007\224\022,\000\000\000\000\000\000\000\000\000\000\000\000\b\184L\148\007\244 \164\bt\000\000\b\200L\148\b\006\b\208/\164\000\000\000\000\000\000/\164\000\017\000\000\002\224L\148\b\250\000\000\000\017\000\000\001<\b\252\000\000\t.\b\208\000\017\b\024\b\232;j\b\"\001\154\000\000L\148\t\020\000\000\000\000\000\000\b\248;j\b,\t\030\000\000\003\186\003\000L\148\t \000\000\t\"\000\000(P\000\017\004>L\148\t$\000\000\t&\000\000\000\017\004lL\148\t,\000\000\t4\000\000\0013\br\t\n\"\212\000\000\\Z\029J\bJN\254\000\000S\144\000\000\t>\000\000\003\002\t$L\148\b\232\000\000\t.L\148\b\242\000\000\001p\000\000\t\n\t\n\029J\bv\000\000\b\134l4l4\000\000\000\000\000\000\000\000\000\000\000\000Xf\000\000\000\000Xf\000\000\000\000Xf\000\000\000\006\000\000l4\000\000\000\0000\220\000\017\000\000\023\174\b\146\000\000L\148\b\148\000\000\000\000\000\017\000\000\000\000\000\000\000\000\000\000T\020L\148\000\000L\148\000\000\b\156\000\000\000\020\000\000\000\000\000\000\000\000\000\000`\204L\148a4L\148\b\202L\148\000\000L\148bPL\148b\184L\148c\212L\148d\014\137\018\030\001\138\030\191\030\195\005y\007y\014\137\030\199\014\137\019\190\018F\005y\014\137 \238\014\137\014\137\029*\014\137\012\214\001\150\014\137\002&\026\242\rU\0026\014\137\014\137\014\137\t\221\001\154\014\137\002m\001\146\006\234 \242\005-\014\137\007\170\001\202\014\137\014\137 \246\005-\017b\018J\014\137\014\137\015I\014\137\021r\014\137\bZ\029>\024\254\000\n\014\137\001\138\014\137\014\137\001\150\014\137\014\137\014\137\001\138\002J\026j\014\137\014\137\014\137\001\154\026\002\014\137\014\137\014\137\020B\bf\002^\014\137\014\137\014\137\014\137\014\137\014\137\n\229!\150\rU\014\137\014\137\020\238\012\222\005\161!\154\029B\002\138\000\n\029.\005U\014\137\014\137\014\137\020J\0055\014\137\014\137\014\137\014\137\023\"\014\137\0055\014\137 \254\017.\014\137\023&\001\206\014\137\014\137\023*\015I\015I\029\158\001\150\012\162\015I\025\006\007\030\022&\014\137\005\161\n!\014\137\001\154\000\006\000\"\014\137\014\137\014\137\014\137\017f\002q\014\137\029F\014\137!\006\021v\n\229\014\137\014\137\014\137\000\n\014\137\024\162\014\137\014\137\007Q\014\137\000\n\014\137\014\137\001\138\014\137\014\137\014\137\007\201\007\201\007\201\007\201\007\201\007\201\007\201\007\201\007\201\007\201\007\201\007\201\007\201\007\201\000\n\007\201\007\201\007\201\007\201\007\201\007\201\007\201\007\201\007\201\007\201\001\138\007i\001\146\006\234\007\201\018\"\0182\018B\025&\005J\t\197\007\201\005Z\007\201\005z\0052!\022\007\201\014\t\007\201\007\201\005\130\007\201\007~\007\185\007\201\026\238\002\157\016\202\001\150\007\201\001\146\007\201\016\206\014\t\007\201\"\014\002*\030\226\001\154\016\210\007\201\002\142\001\138\000.\016\214\030\230\026n + /\007\201\007\201\002\206 3\005\138\007\201\007\201\007\249\001\150\021R\007\201\026z\007\201\007\201\000\n\007\201\007\201\007\201\001\154\026~\014i\007\201\007\201\007\201\001\146\021V\007\201\007\201\007\201\025.\002\214\011R\007\201\007\201\007\201\007\201\007\201\007\201\t\233\005\154\t*\007\201\007\201\000\n\t\165\"\"\017r\000\n\007I\007I\023b\001\150\017v\007\201\007\201\007y\007:\007\201\007\201\007\201\007\201\001\154\007\201\017\"\007\201\021\246\026\138\007\201\n6\007\249\007\201\007\201\t\149!&\004>\004\238\026\142\007)\026\154\017\150\011^!\022\014i\017.!\030\007\201\000\n\t\249\t\225\007\201\007\201\007\201\007\201\005\201\007a\007\201\002\226\007\201\025^\017.\nj\007\201\007\201\007\201\002M\005\n\"w\007\201\007\201\001\138\007\201!\n\007\201\007\201\005\233\007\201\007\201\007\201\007\233\007\233\007\233\007\233\007\233\007\233\007\233\007\233\007\233\007\233\007\233\007\233\007\233\007\233!\014\007\233\007\233\007\233\007\233\007\233\007\233\007\233\007\233\007\233\007\233\014\t\007\233\023f\020>\007\233\005\018\014) K O\n\225\007\233\007\233 S\007\233\005\142\027\234\027\242\007\233\018\030\007\233\007\233\030\134\007\233\014\t\001\150\007\233\025f\019\190\014\t\007)\007\233\007\233\007\233\014\t\001\154\007\233\007\233\007\233\007\233\014\134 \011\007\233\007\233\007\233\007\233!.\007\233\007\233 \015\007)\007\233\007\233\007\233\007\233\014Q\007\233!\030\027\250 \018\000\n\007\233\030\134\007\233\011n\007\233\007\233\007\233\007\233\027:\007\233\002}\007\233\007\233\007\233\005\146\014)\007\233\007\233\007\233\020B\"&\007\233\007\233\007\233\007\233\007\233\007\233\007\233\n\245\020F\020Z\007q\007\233\t\193\t\177\017\182\020f\005\250\023\146\014Y\002]\t\181\"2\007\233\007\233\007\233\020\238\007\233\007\233\007\233\007\233\007\233\007\233\022\002\007\233\017.\026^\007\233\017\210\005\182\007\233\007\233\005\198\021\154\005\230\007\233\007\233\023\166\021\186\007\161\n\201\005\238\007\233\027\210\022v\007\233\015I\015I\017.\007\233\007\233\015I\007\233\017.\018\030\007\233\023\194\007\233\017.\022\246\n\245\007\233\031\150\019\190\014A\"N\n\021\023\214\007\233\023\230\007\233\026\226\007\233\007\233\005\246\007\233\007\233\007\233\000R\000V\000f\000\194\012\250\000\198\016\202\000\202\000\210\000\218\0016\016\206\001F\001N\025\234\001v\030\206\001~\016\210\001\134\002j\002r\002v\016\214\030\210\023\150\025\238\024B\024V\016\218\031\162\006\006\024r\025\150\n\005\007\177\016\234\025\242\002~\025\246\027\234\027\242\002\230\025\250\017\242\016\242\029*\017\246\027\222\025\254\017\250\005\254\n\225\006j\023\170\002\134\007\145\018\014\026\n\031\194\n\221\018\030\026\014\002\141\020\238\n\225\002\246\006~\026\018\031\006\019\190\007\153\006\166\023\198\018\030\019\210\018R\0312\031>\007\169\019\214\0222\029\154\019\190\026\022\003\026\023\234\003\030\005\249\000\n\002\154\020\230\019\222\001\138\011\017\011\017\018j\003&\019\226\011\017\006\170\018n\b\130\003.\025\158\006\198\006\238\018r\018v\017\006\017\n\018z\019\230\n\237\006\246\026\026\006\250\019\234\026\030\026\254\0076\015I\024F\024Z\001\146\0072\014\025\024v\b\146\018~\007>\026\"\019\238\019\242\018\130\019\246\026&\000\n\026*\020\n\026.\0262\005\213\0266\007N\020\022\018\138\027\174\029Z\020\238\026:\001\150\007V\026>\014\001\014\017\007Z\031R\014I\007b\0206\001\154\020\238\0141\020:\020\134\005\249\017\014\026B\007Y\018\142\0149\020\138\026F\026J\n\237\018\150\005\249\005\249\011\017\011\017\007\146\005\249\020\146\011\017\018\154\000\n\007\241\007\241\007\150\018\162\003r\007\241\000R\000V\000f\000\194\012\250\000\198\016\202\000\202\000\210\000\218\0016\016\206\001F\001N\007\158\001v\030\206\001~\016\210\001\134\002j\002r\002v\016\214\030\210\r\n\007\178\028\130\r\026\016\218\r:\0045\029\030\007\198\007\222\0045\016\234\rB\002~\007\254\029\142\b\006\002\230\b\030\017\242\016\242\b&\017\246\b6\bB\017\250\bJ\bb\b\174\007)\002\134\t\146\018\014\t\194\nF\n\221\nz\002\186\n\134\n\178\n\186\002\246\011J\001\138\018\030\rJ\011\134\011\150\002\226\011\158\019\210\018R\0312\019\190\011\170\019\214\022z\001\138\011\182\024\"\003\026\011\194\003\030\006\t\001\138\002\154\020\230\019\222\011\222\b*\011\238\018j\003&\019\226\001\146\024&\018n\b\130\003.\014\230\rZ\011\254\018r\018v\017\006\017\n\018z\019\230\012\006\012\030\012&\020\234\019\234\006b\0126\012B\017r\012N\012^\012j\014\"\001\150\017v\b\146\018~\012v\012~\019\238\019\242\018\130\019\246\001\154\000\n\012\146\020\n\001\238\012\186\005\213\012\198\012\235\020\022\018\138\001\238\rN\007)\rR\r\186\r\190\014*\014>\014f\014j\020\238\014~\014\170\0206\000\n\014\222\014\238\020:\020\134\015\002\017\014\015b\007)\018\142\015f\020\138\007)\rv\000\n\018\150\r\134\006\t\r\166\015\206\015\210\000\n\020\146\016>\018\154\r\174\b\001\b\001\001\138\018\162\003r\b\001\000R\000V\000f\000\194\012\250\000\198\016\202\000\202\000\210\000\218\0016\016\206\001F\001N\016R\001v\030\206\001~\016\210\001\134\002j\002r\002v\016\214\030\210\016z\r\182\001\146\031\178\016\218\016~\016\146\016\170\016\190\015\030\016\222\016\234\015.\002~\015N\016\230\016\238\002\230\016\246\017\242\016\242\015V\017\246\001\138\016\254\017\250\017\002\017*\017>\001\150\002\134\017J\018\014\017R\017V\n\221\r\198\001\138\017^\001\154\017n\002\246\017~\017\134\018\030\017\138\017\158\017\166\017\190\017\198\018N\018R\017\218\019\190\015^\019\214\017\226\017\238\018\006\0166\003\026\018\026\003\030\006%\000\n\002\154\019\218\019\222\001\146\017F\018&\018j\003&\019\226\018.\0186\018n\b\130\003.\018>\018Z\001\238\018r\018v\017\006\017\n\018z\019\230\018b\015n\017r\015Q\019\234\007\225\018\202\001\150\017v\018\214\019\014\007\225\007\225\019>\0045\b\146\018~\001\154\0045\019\238\019\242\018\130\019\246!\138\000\n\019\182\020\n\019\250\000\n\005\213\020\002\020\018\020\022\018\138\020\026\020\"\020*\0202\020\130\020\142\020\150\020\162\000\n\020\166\020\238\020\174\020\178\0206\020\186\007\225\020\194\020:\020\134\006%\017\014\020\202\020\210\018\142\020\250\020\138\021>\021F\021J\018\150\006%\006%\021Z\021b\021f\006%\020\146\001\138\018\154\021n\011\025\011\025\021~\018\162\003r\011\025\000R\000V\000f\000\194\012\250\000\198\016\202\000\202\000\210\000\218\0016\016\206\001F\001N\021\134\001v\021\142\001~\016\210\001\134\002j\002r\002v\016\214\021\146\002\186\021\162\021\170\020>\016\218\021\194\001\138\021\202\022\026\005\189\022b\016\234\022n\002~\022\226\022\238\023\014\002\230\023:\017\242\016\242\023J\017\246\023R\001\150\017\250\tY\023n\023z \218\002\134\ta\018\014\023\130\001\154\n\221\023\134\001\146\023\142\018\030\tY\002\246\016\162\023\158\018\030\ta\023\178\023\206\019\190\023\242\018N\018R\023\254\019\190\024\014\019\214\024\022\024\026\024*\000\n\003\026\0242\003\030\0246\001\150\002\154\019\218\019\222\024>\024N\024b\018j\003&\019\226\001\154\024~\018n\b\130\003.\020B\024\146\024\158\018r\018v\017\006\017\n\018z\019\230\024\174\024\198\024\214\004\237\019\234\024\226\025\019\025;\025S\tY\025s\000\n\025\139\002a\ta\b\146\018~!J\025\171\019\238\019\242\018\130\019\246\025\195\000\n\025\219\020\n!^\025\230\026\006\026r\005\189\020\022\018\138!\182\026\130!b\005\189\005\189\020\238\026\179\004\237\027\n\027\031\020\238\027G\027S\0206\027c\005\189\005\189\020:\020\134\027k\017\014\027\134\027\143\018\142\027\151\020\138\027\159\015\138\tY\018\150\015\154\027\186\015\186\ta\027\203\027\238\020\146\027\246\018\154\015\194\tY\005\189\028\006\018\162\003r\ta\000R\000V\000f\000\194\012\250\000\198\016\202\000\202\000\210\000\218\0016\016\206\001F\001N\028#\001v\n\225\001~\016\210\001\134\002j\002r\002v\016\214\0283\018\030\015\202\028;\028N\016\218\028W\028_\028g\004\237\019\190\028r\016\234\028\151\002~\004\237\004\237\028\163\002\230\028\182\017\242\016\242\028\191\017\246\028\199\028\207\017\250\004\237\028\242\028\251\029\003\002\134\0296\018\014\029f\029\166\n\221\015\218\001\138\029\199\029\207\029\219\002\246\029\235\004\237\018\030\029\243\029\255\015I\030\n\030\026\018N\018R\004\237\019\190!\030\019\214\030'\030/\0306\030C\003\026\030O\003\030\030W\030c\002\154\019\218\019\222\001\146\023v\030o\018j\003&\019\226\030\138\031\018\018n\b\130\003.\031:\031J\031~\018r\018v\017\006\017\n\018z\019\230\020\238\031\134\017r\015Q\019\234\031\182\031\222\001\150\017v\031\226\031\234 \023 \222 \234 \250\b\146\018~\001\154!\002\019\238\019\242\018\130\019\246!?\000\n!G\020\n!N![!f\015I\015I\020\022\018\138!v\015I!\171!\186!\199!\235\"\007!r\000\n\"\022\020\238\"\030\"*\0206\"6\"C\"J\020:\020\134\"R\017\014\"[\"b\018\142\"k\020\138\"\127\000\000\000\000\018\150\000\000\000\000\000\000\000\000\000\000\000\000\020\146\000\000\018\154\000\000\015Q\015Q\000\000\018\162\003r\015Q\000R\000V\000f\000\194\012\250\000\198\016\202\000\202\000\210\000\218\0016\016\206\001F\001N\000\000\001v\030\206\001~\016\210\001\134\002j\002r\002v\016\214\030\210\000\000\000\000\000\000\000\000\016\218\000\000\000\000\000\000\000\000\000\000\000\000\016\234\000\000\002~\000\000\000\000\000\000\002\230\000\000\017\242\016\242\000\000\017\246\000\000\000\000\017\250\000\000\000\000\000\000\000\000\002\134\000\000\018\014\000\000\000\000\n\221\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\007\217\000\000\000\000\000\000\019\210\018R\007\217\007\217\000\000\019\214 b\000\000\000\000\000\000\003\026\000\000\003\030\000\000\007\217\002\154\020\230\019\222\000\000\000\000\000\000\018j\003&\019\226\000\000\000\000\018n\b\130\003.\000\000\000\000\000\000\018r\018v\017\006\017\n\018z\019\230\000\000\000\000\007\217\004\249\019\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\146\018~\000\000\000\000\019\238\019\242\018\130\019\246\000\000\000\n\000\000\020\n\000\000\000\000\005\213\000\000\000\000\020\022\018\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\022\000\000\000\000\000\000\000\000\000\000\0206\000\000\000\000\000\000\020:\020\134\000\000\017\014\000\000\000\000\018\142\000\000\020\138\000\000\000\000\000\000\018\150\000\000\000\000\000\000\000\000\000\000\000\000\020\146\000\000\018\154\000\000\n\253\n\253\000\000\018\162\003r\n\253\000R\000V\000f\000\194\012\250\000\198\016\202\000\202\000\210\000\218\0016\016\206\001F\001N\004\245\001v\000\000\001~\016\210\001\134\002j\002r\002v\016\214\000\000\000\000\000\000\000\000\000\000\016\218\000\000\000\000\000\000\004\249\000\000\000\000\016\234\000\000\002~\004\249\004\249\000\000\002\230\000\000\017\242\016\242\000\000\017\246\000\000\000\000\017\250\004\249\000\000\000\000\000\000\002\134\000\000\018\014\000\000\000\000\n\221\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\210\018R\004\249\000\000!\030\019\214\021\002\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\020\230\019\222\000\000\000\000\000\000\018j\003&\019\226\000\000\000\000\018n\b\130\003.\000\000\000\000\000\000\018r\018v\017\006\017\n\018z\019\230\000\000\000\000\000\000\015-\019\234\000\000\000\000\000\000\000\000\000\000\000\000\004\245\000\000\000\000\000\000\b\146\018~\004\245\004\245\019\238\019\242\018\130\019\246\000\000\000\n\000\000\020\n\000\000\000\000\004\245 \230\000\000\020\022\018\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0206\000\000\000\000\000\000\020:\020\134\000\000\017\014\004\245\000\000\018\142\000\000\020\138\000\000\000\000\000\000\018\150\000\000\000\000\000\000\000\000\000\000\000\000\020\146\000\000\018\154\000\000\015-\015-\000\000\018\162\003r\015-\000R\000V\000f\000\194\012\250\000\198\016\202\000\202\000\210\000\218\0016\016\206\001F\001N\000\000\001v\000\000\001~\016\210\001\134\002j\002r\002v\016\214\000\000\000\000\000\000\000\000\000\000\016\218\000\000\000\000\000\000\000\000\000\000\000\000\016\234\000\000\002~\000\000\000\000\000\000\002\230\000\000\017\242\016\242\000\000\017\246\000\000\000\000\017\250\000\000\000\000\000\000\000\000\002\134\000\000\018\014\000\000\000\000\n\221\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\210\018R\000\000\000\000\000\000\019\214\031\022\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\020\230\019\222\000\000\000\000\000\000\018j\003&\019\226\000\000\000\000\018n\b\130\003.\000\000\000\000\000\000\018r\018v\017\006\017\n\018z\019\230\000\000\000\000\000\000\000\000\019\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\146\018~\000\000\000\000\019\238\019\242\018\130\019\246\000\000\000\n\000\000\020\n\000\000\000\000\000\000\000\000\000\000\020\022\018\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0206\000\000\000\000\000\000\020:\020\134\000\000\017\014\000\000\000\000\018\142\000\000\020\138\000\000\000\000\000\000\018\150\000\000\000\000\000\000\000\000\000\000\000\000\020\146\000\000\018\154\000\000\015y\015y\000\000\018\162\003r\015y\000R\000V\000f\000\194\012\250\000\198\016\202\000\202\000\210\000\218\0016\016\206\001F\001N\000\000\001v\000\000\001~\016\210\001\134\002j\002r\002v\016\214\000\000\000\000\000\000\000\000\000\000\016\218\000\000\000\000\000\000\000\000\000\000\000\000\016\234\000\000\002~\000\000\000\000\000\000\002\230\000\000\017\242\016\242\000\000\017\246\000\000\000\000\017\250\000\000\000\000\000\000\000\000\002\134\000\000\018\014\000\000\000\000\n\221\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\210\018R\000\000\000\000\000\000\019\214\031\022\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\020\230\019\222\000\000\000\000\000\000\018j\003&\019\226\000\000\000\000\018n\b\130\003.\000\000\000\000\000\000\018r\018v\017\006\017\n\018z\019\230\000\000\000\000\000\000\000\000\019\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\146\018~\000\000\000\000\019\238\019\242\018\130\019\246\000\000\000\n\000\000\020\n\000\000\000\000\000\000\000\000\000\000\020\022\018\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0206\000\000\000\000\000\000\020:\020\134\000\000\017\014\000\000\000\000\018\142\000\000\020\138\000\000\000\000\000\000\018\150\000\000\000\000\000\000\000\000\000\000\000\000\020\146\000\000\018\154\000\000\015u\015u\000\000\018\162\003r\015u\000R\000V\000f\000\194\012\250\000\198\016\202\000\202\000\210\000\218\0016\016\206\001F\001N\000\000\001v\000\000\001~\016\210\001\134\002j\002r\002v\016\214\000\000\000\000\000\000\000\000\000\000\016\218\000\000\000\000\000\000\000\000\000\000\000\000\016\234\000\000\002~\000\000\000\000\000\000\002\230\000\000\017\242\016\242\000\000\017\246\000\000\000\000\017\250\016\202\000\000\000\000\000\000\002\134\016\206\018\014\000\000\000\000\n\221\030\226\000\000\016\210\000\000\000\000\002\246\000\000\016\214\030\230\000\000\000\000\000\000\000\000\000\000\019\210\018R\000\000\000\000\000\000\019\214\022\174\000\000\000\000\000\000\003\026\000\000\003\030\000\000\001\138\002\154\020\230\019\222\000\000\000\000\000\000\018j\003&\019\226\000\000\000\000\018n\b\130\003.\000\000\021R\000\000\018r\018v\017\006\017\n\018z\019\230\000\000\000\000\000\000\000\000\019\234\000\000\000\000\001\146\021V\000\000\000\000\000\000\000\000\000\000\000\000\b\146\018~\000\000\000\000\019\238\019\242\018\130\019\246\000\000\000\n\000\000\020\n\000\000\000\000\017r\014!\014!\020\022\018\138\001\150\017v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\154\000\000\000\000\0206\000\000\000\000\000\000\020:\020\134\000\000\017\014\000\000\000\000\018\142\000\000\020\138\000\000\000\000\000\000\018\150\000\000\000\000\000\000\000\000\000\000\000\n\020\146\000\000\018\154\000\000\005\233\000\000\000\000\018\162\003r\000R\000V\000f\000\194\000\000\000\198\016\202\000\202\000\210\000\218\0016\016\206\001F\001N\000\000\001v\000\000\001~\016\210\001\134\002j\002r\002v\016\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014!\000\000\000\000\000\000\000\000\000\000\000\000\002~\000\000\t\021\t\021\002\230\000\000\017\242\t\021\000\000\017\246\000\000\000\000\017\250\014!\000\000\000\000\000\000\002\134\000\000\023.\000\000\000\000\n\221\000\000\014!\000\000\000\000\000\000\002\246\000\000\014!\014!\000\000\000\000\000\000\000\000\000\000\023>\018R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\000\000\000\000\000\022\000\000\000\000\018j\003&\000\000\000\000\014!\018n\001\238\003.\000\000\014!\014!\018r\018v\017\006\023B\018z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\146\018~\007!\000\000\000\000\000\000\018\130\007!\000\000\000\n\000\000\000n\007!\000\000\007!\000\000\007!\000\000\018\138\007!\007!\007!\000\000\r\234\007!\r\250\007!\000\000\007!\000\000\014\002\007!\r\014\007!\007!\007!\007!\007!\000\000\017\014\007!\007!\018\142\007!\023F\000\000\000\000\007!\018\150\007!\000\000\000\000\007!\007!\007!\023N\007!\018\154\000\000\007!\007!\007!\018\162\003r\000\000\007!\007!\000\000\007!\000\000\007!\007!\007!\000\000\000\000\007!\002V\000\000\007!\007!\000\000\000Z\007!\000Z\007!\007!\007!\000\000\000\000\007!\0146\000\000\000\000\007!\007!\000Z\007!\014\162\007!\007!\007!\007!\000Z\000\000\000\000\000\000\000\000\007!\007!\000\000\000\000\000\000\007!\007!\000\000\000\000\007!\000\000\000\000\000\000\000\000\000\000\007!\007!\000\000\007!\007!\000\000\007!\007!\000\000\000\000\007!\007!\007!\007!\007!\007!\007!\007!\000\000\007!\000\000\000\000\000\000\000\000\007!\007!\007!\000\000\007!\007!\007!\007!\007!\007!\000\000\007!\007!\000\000\007!\000\000\000\000\007!\000\000\000\000\007!\007!\000\000\000\000\007!\007!\007!\000\000\007!\007!\000\000\000\000\007!\000\000\000\000\000\000\000\000\007!\007!\007!\000\000\000\000\007!\007!\007!\007!\007!\000\000\000\000\000\000\000\000\007!\007!\000\000\000\000\000\000\007!\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000\000\tY\000\000\000\000\000\000\n\225\000\000\000\000\000\000\000\000\000\000\000\000\002~\000\000\018\030\tY\002\230\000\000\001\138\000\000\000\000\002\254\000\000\019\190\003\002\000\000\000\000\016\202\000\000\002\134\000\000\000\000\016\206\000\000\000\000\000\000\000\000\030\226\000\000\016\210\002\246\000\000\000\000\002\250\016\214\030\230\000\000\000\000\000\000\003\150\007\246\000\000\003\018\000\000\000\000\b\250\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\001\138\000\000\000\000\000\000\000\000\b\254\003&\tY\000\000\000\000\t\002\001\238\003.\000\000\000\000\t\006\t\n\t\014\000\000\000\000\t\018\003>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\146\017F\000\000\000\000\017%\000\000\020\238\t\022\000\000\000\000\000\000\000\000\t\026\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\017r\000\000\t\"\000\000\000\000\001\150\017v\tY\017%\017%\000\000\000\000\000\000\t&\000\000\001\154\b\238\000\000\000\000\tY\000\000\000\000\000\000\017%\000\000\000\000\t2\000\000\000\000\017%\017%\000\000\t:\b\246\000\000\005M\n~\000\000\000\000\017%\000\n\t>\017%\000\000\017%\005\233\tF\003r\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\017%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002~\000\000\000\000\000\000\002\230\n\138\001\138\000\000\000\000\002\254\000\000\000\000\003\002\000\000\000\000\000\000\000\000\002\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017%\000\000\000\000\002\246\000\000\n\142\002\250\017%\000\000\000\000\000\000\000\000\003\150\007\246\000\000\003\018\n\150\000\000\b\250\000\000\000\000\017%\003\026\000\000\003\030\000\000\000\000\002\154\017%\000\000\000\000\000\000\000\000\b\254\003&\000\000\017%\017%\t\002\001\238\003.\000\000\000\000\t\006\t\n\t\014\000\000\000\000\t\018\003>\000\000\005>\005F\000\194\000\000\000\198\000\000\005\162\005\170\005\178\006\014\000\000\006\030\006&\000\000\006N\t\022\006V\000\000\006^\006\138\t\026\006\146\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\"\000\000\000\000\000\000\000\000\006\154\000\000\000\000\000\000\000\000\000\000\t&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\162\000\000\t2\000\000\000\000\000\000\000\000\000\000\t:\000\000\000\000\t\153\000\000\000\000\000\000\000\000\000\000\t>\000\000\000\000\000\000\000\000\tF\003r\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\006\178\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002~\000\000\000\000\000\000\002\230\000\000\001\138\000\000\021R\002\254\000\000\000\000\003\002\000\000\000\000\000\000\000\000\002\134\000\000\000\000\000\000\000\000\000\000\001\146\021V\000\000\000\000\000\000\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\0052\003\150\007\246\000\000\003\018\000\000\000\000\b\250\000\000\017r\000\000\003\026\000\000\003\030\001\150\017v\002\154\001\225\000\000\000\000\001\225\000\000\b\254\003&\001\154\000\000\000\000\t\002\001\238\003.\000\000\000\000\t\006\t\n\t\014\000\000\001\138\t\018\003>\000\000\000\000\000\000\000\000\001\225\001\225\000\000\000\000\000\000\000\000\000\n\000\000\000\000\024\"\000\000\000\000\t\022\000\000\000\000\001\225\000\000\t\026\000\000\001\225\000\n\001\225\001\225\000\000\001\146\024&\000\000\000\000\000\000\t\"\000\000\001\225\000\000\000\000\001\225\000\000\001\225\0052\000\000\000\000\t&\000\000\000\000\000\000\000\000\000\000\017r\007y\000\000\000\000\000\000\001\150\017v\t2\000\000\000\000\000\000\000\000\000\000\t:\000\000\001\154\002Q\001\225\000\000\000\000\000\000\000\000\t>\000\000\000\000\000\000\000\000\tF\003r\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\n\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000\000\000\000\001\225\tn\000\000\001\225\000\000\000\000\000\000\001\225\000\000\000\000\002~\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\254\000\000\001\225\003\002\000\000\007y\001\225\001\225\002\134\000\000\000\000\000\000\000\000\tv\000\000\000\000\000\000\001\225\001\225\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\000\000\003\150\007\246\000\000\003\018\000\000\000\000\t.\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\000\000\000\000\000\000\000\000\000\000\b\254\003&\000\000\000\000\000\000\t\002\001\238\003.\000\000\000\000\t\006\t\n\t\014\000\000\000\000\t\018\003>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\022\000\000\000\000\000\000\000\000\t\026\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000R\000V\000f\000\194\t\"\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000\000\000\000\t2\000\000\000\000\000\000\000\000\000\000\t:\000\000\000\000\t\169\002~\000\000\000\000\000\000\002\230\t>\001\138\000\000\000\000\002\234\tF\003r\002\238\000\000\000\000\000\000\000\000\002\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\000\000\003\014\003\n\000\000\003\018\000\000\000\000\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\000\000\000\000\000\000\000\000\000\000\003\"\003&\000\000\000\000\000\000\003*\001\238\003.\000\000\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\015\018\015\026\000\194\000\000\000\198\000\000\015v\015~\015\134\015\226\000\000\015\242\015\250\000\000\016\"\003B\016*\000\000\0162\016^\003F\016f\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003N\000\000\000\000\000\000\000\000\016n\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016v\000\000\003V\000\000\000\000\000\000\000\000\000\000\003b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003z\000\000\000\000\000\000\000\000\003j\003r\001\133\001\133\001\133\001\133\000\000\001\133\007!\001\133\001\133\001\133\001\133\016\134\001\133\001\133\000\000\001\133\000\000\001\133\007!\001\133\001\133\001\133\001\133\000\000\000\000\000\000\000\000\025\206\000\000\007!\000\000\007!\000\000\000\000\000\000\007!\007!\001\133\001\133\001\133\000\000\007!\000\000\025\210\000\000\000\000\000\000\007!\000\000\001\133\007!\000\000\000\000\000\000\007!\001\133\000\000\000\000\001\133\000\000\007!\000\000\001\133\000\000\000\000\025\222\000\000\000\000\001\133\000\000\000\000\007!\014\250\000\000\000\000\001\133\007!\000Z\000\000\000\000\001\133\000\000\007!\000\000\000\000\000\000\000\000\000\000\000\000\001\133\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\007!\000\000\000\000\007!\000\000\000\000\007!\000\000\001\133\000\000\000\000\001\133\000\000\000\000\001\133\000\000\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\007!\007!\007!\001\133\007!\007!\000\000\007!\001\133\000\000\001\133\000\000\000\000\001\133\007!\025\226\000\000\007!\000\000\000\000\001\133\000\000\001\133\000\000\000\000\001\133\000\000\000\000\000\000\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\007!\007!\000\000\001\133\001\133\000\000\000\000\000\000\001\133\001\133\000\000\000\000\000\000\000R\012\254\r\006\000\194\000\000\000\198\026\182\rb\rj\rr\r\206\000\000\r\222\r\230\025\234\014\014\000\000\014\022\000\000\014\030\014J\002r\014R\000\000\000\000\000\000\025\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\242\014Z\025\246\000\000\000\000\000\000\025\250\000\000\000\000\000\000\000\000\000\000\025\254\000\000\000\000\000\000\000\000\000\000\030\006\000\000\000\000\026\n\000\000\000\000\000\000\026\014\000\000\000\000\000\000\000\000\000\000\026\018\000\000\000\000\000\000\000\000\000\000\000\000\014r\000\000\000\000\000\000\000\000\027\162\000\000\000\000\000\000\026\022\029\014\000\000\000\000\016\218\000\000\014\158\000\000\000\000\000\000\000\000\016\234\000\000\000\000\000\000\000\000\000\000\002\230\000\000\001\138\016\242\000\000\017\246\000\000\000\000\017\250\000\000\000\000\014\182\000\000\000\000\026\026\018\014\000\000\026\030\n\221\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\000\000\026\"\000\000\000\000\020\006\018R\026&\000\n\026*\019\214\026.\0262\000\000\0266\003\026\000\000\003\030\000\000\000\000\000\000\026:\019\222\000\000\026>\000\000\018j\003&\019\226\000\000\000\000\018n\b\130\003.\000\000\000\000\000\000\018r\018v\026B\000\000\018z\019\230\000\000\026F\026J\000\000\019\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\146\018~\000\000\000\000\019\238\019\242\018\130\019\246\000\000\000\n\000\000\020\n\000\000\000\000\000\000\000\000\000\000\020\022\018\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0206\000\000\000\000\000\000\020:\020\134\016\218\000\000\000\000\000\000\018\142\000\000\020\138\016\234\000\000\000\000\018\150\000\000\000\000\002\230\000\000\001\138\016\242\020\146\017\246\018\154\000\000\017\250\000\000\000\000\018\162\003r\000\000\000\000\018\014\000\000\000\000\n\221\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018f\018R\000\000\000\000\000\000\019\214\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\019\222\000\000\000\000\000\000\018j\003&\019\226\000\000\000\000\018n\b\130\003.\000\000\000\000\000\000\018r\018v\000\000\000\000\018z\019\230\000\000\000\000\000\000\000\000\019\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\146\018~\000\000\000\000\019\238\019\242\018\130\019\246\000\000\000\n\000\000\020\n\000\000\000\000\000\000\000\000\000\000\020\022\018\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0206\000\000\000\000\000\000\020:\020\134\000\000\000\000\017\201\000\000\018\142\017\201\020\138\000\000\000\000\000\000\018\150\000\000\000\000\000\000\000\000\000\000\000\000\020\146\000\000\018\154\000\000\re\000\000\000\000\018\162\003r\000\000\000\000\017\201\017\201\000\000\000\000\000\000\017\201\000\000\000\000\017\201\017\201\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\017\201\017\201\000\000\017\201\017\201\000\000\re\017\201\000\000\017\201\017\201\000\000\000\000\017\201\000\000\000\000\017\201\000\000\017\201\017\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\re\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\re\000\000\017\201\000\000\017\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\re\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006M\000\000\000\000\006M\000\000\000\000\017\201\017\201\000\000\017\201\017\201\017\201\000\000\017\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\000\000\006M\006M\000\000\006M\017\201\000\000\017\201\000\000\006M\006M\000\000\000\000\017\201\017\201\017\201\006M\017\201\017\201\017\201\ra\000\000\006M\006M\000\000\000\000\006M\006M\006M\006M\000\000\000\000\006M\000\000\000\000\006M\006M\006M\006M\000\000\000\000\000\000\006M\000\000\000\000\006M\006M\000\000\006M\006M\000\000\ra\006M\000\000\006M\006M\000\000\000\000\006M\000\000\000\000\006M\000\000\006M\006M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ra\000\000\000\000\000\000\000\000\000\000\006M\000\000\000\000\000\000\ra\000\000\006M\000\000\006M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006M\006M\006M\000\000\000\000\b\185\006M\006M\006M\000\000\ra\000\000\000\000\000\000\000\000\000\000\000\000\006M\000\000\000\000\000\000\000\000\006M\000\000\000\000\006M\000\000\006M\006M\006M\006M\b\185\006M\006M\006M\000\000\000\000\006M\006M\000\000\000\000\000\000\000\000\006M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006M\000\000\006M\000\000\000\000\000\000\000\000\000\000\006M\006M\006M\000\000\006M\006M\006M\012\209\012\209\012\209\012\209\000\000\012\209\000\000\012\209\012\209\012\209\012\209\000\000\012\209\012\209\000\000\012\209\000\000\012\209\000\000\012\209\012\209\012\209\012\209\000\000\000\000\017y\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\209\012\209\012\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\209\000\000\017y\017y\000\000\000\000\012\209\017y\000\000\026\198\003\138\017y\000\000\026\206\000\000\000\000\000\000\017y\000\000\012\209\017y\017y\000\000\017y\017y\000\000\012\209\003\146\000\000\017y\003\166\012\209\000\000\017y\000\000\000\000\017y\000\000\017y\017y\012\209\012\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\000\000\000\000\000\000\000\000\000\012\209\000\000\017y\012\209\017y\000\000\012\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\000\000\000\000\012\209\000\000\000\000\004\242\000\000\012\209\000\000\012\209\000\000\000\000\012\209\000\000\000\000\000\000\000\000\000\000\000\000\012\209\000\000\012\209\000\000\000\000\012\209\017y\017y\000\000\017y\017y\004\246\000\000\017y\000\000\000\000\000\000\000\000\000\000\000\000\012\209\012\209\004\254\000\000\000\000\027\"\012\209\017y\000\000\000\000\017y\017y\017y\017y\017y\000\000\000\000\000\000\017y\017y\017y\000\000\017y\017y\017y\017\t\000\000\000\000\017\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\t\017\t\000\000\000\000\000\000\017\t\000\000\000\000\003\138\017\t\000\000\000\000\000\000\000\000\000\000\017\t\000\000\000\000\017\t\017\t\000\000\017\t\017\t\000\000\000\000\003\146\000\000\017\t\003\166\000\000\000\000\017\t\000\000\000\000\017\t\000\000\017\t\017\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\t\000\000\017\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\t\012\193\012\193\012\193\012\193\000\000\012\193\004\242\012\193\012\193\012\193\012\193\000\000\012\193\012\193\000\000\012\193\000\000\012\193\000\000\012\193\012\193\012\193\012\193\000\000\000\000\000\000\017\t\017\t\000\000\017\t\017\t\004\246\000\000\017\t\000\000\000\000\000\000\012\193\012\193\012\193\000\000\000\000\004\254\000\000\000\000\000\000\000\000\017\t\000\000\012\193\017\t\017\t\017\t\017\t\017\t\012\193\000\000\000\000\017\t\017\t\017\t\000\000\017\t\017\t\017\t\005>\005F\000\194\012\193\000\198\000\000\005\162\005\170\005\178\006\014\012\193\006\030\006&\000\000\006N\012\193\006V\000\000\006^\006\138\000\000\006\146\000\000\000\000\012\193\012\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\154\000\000\000\000\000\000\000\000\000\000\002\162\000\000\000\000\000\000\012\193\000\000\000\000\012\193\000\000\000\000\012\193\006\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\193\000\000\000\000\000\000\000\000\012\193\000\000\012\193\000\000\000\000\012\193\000\000\000\000\000\000\000\000\000\000\000\000\012\193\000\000\012\193\000\000\000\000\012\193\006\178\000\000\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\193\012\193\000\000\000\000\000\000\026\202\012\193\012\197\012\197\012\197\012\197\000\000\012\197\000\000\012\197\012\197\012\197\012\197\000\000\012\197\012\197\000\000\012\197\000\000\012\197\000\000\012\197\012\197\012\197\012\197\000\000\000\000\006U\000\n\000\000\006U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\197\012\197\012\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\197\000\000\006U\006U\000\000\000\000\012\197\006U\000\000\027&\006U\006U\000\000\000\000\000\000\000\000\000\000\006U\000\000\012\197\006U\006U\000\000\006U\006U\000\000\012\197\006U\000\000\006U\006U\012\197\000\000\006U\000\000\000\000\006U\000\000\006U\006U\012\197\012\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\197\000\000\006U\012\197\006U\000\000\012\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006U\000\000\000\000\000\000\012\197\000\000\000\000\006U\000\000\012\197\000\000\012\197\000\000\000\000\012\197\000\000\000\000\000\000\000\000\000\000\000\000\012\197\000\000\012\197\000\000\000\000\012\197\006U\006U\000\000\006U\b\197\006U\000\000\006U\000\000\000\000\000\000\000\000\000\000\000\000\012\197\012\197\006U\000\000\000\000\006Q\012\197\006U\006Q\000\000\006U\000\000\006U\000\000\006U\000\000\000\000\000\000\006U\006U\006U\000\000\006U\006U\006U\000\000\000\000\000\000\000\000\000\000\000\000\006Q\006Q\000\000\000\000\000\000\006Q\000\000\000\000\006Q\006Q\000\000\000\000\000\000\017=\000\000\006Q\000\000\000\000\006Q\006Q\000\000\006Q\006Q\000\000\000\000\006Q\000\000\006Q\006Q\000\000\000\000\006Q\000\000\000\000\006Q\000\000\006Q\006Q\000\000\017=\017=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\017=\017=\000\000\006Q\000\000\006Q\000\000\000\000\b*\000\000\017=\000\000\000\000\017=\000\000\017=\006Q\000R\012\254\r\006\000\194\000\000\000\198\006Q\rb\rj\rr\r\206\000\000\r\222\r\230\000\000\014\014\000\000\014\022\000\000\014\030\014J\002r\014R\000\000\000\000\017=\006Q\006Q\000\000\006Q\b\189\006Q\000\000\006Q\000\000\000\000\000\000\027.\014Z\027J\000\000\000\000\006Q\000\000\000\000\000\000\000\000\006Q\000\000\027V\006Q\000\000\006Q\000\000\006Q\014b\000\000\000\000\006Q\006Q\006Q\000\000\006Q\006Q\006Q\017=\000\000\000\000\027n\000\000\000\000\000\000\017=\000\000\000\000\014r\000\000\000\000\000\000\000\000\027\162\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\027\194\014\158\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017=\017=\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\b\014\014\182\000\000\b\018\027\206\016\202\000\000\028&\000\000\000\000\016\206\000\000\000\000\000\000\000\000\030\226\000\000\016\210\000\000\002\246\028>\000\000\016\214\030\230\000\000\028j\000\000\n\197\b.\b:\028\154\000\000\bR\bj\bn\000\000\000\000\028\166\003\026\028\210\003\030\000\000\029\210\001\138\000\000\000\000\000\000\000\000\000\000\br\003&\000\000\bv\bz\b~\b\130\003.\029\222\029\246\021R\b\134\b\138\000\000\030\002\b\142\001\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\146\021V\000\000\000\000\000\000\000\000\000\000\b\146\b\150\000\000\000\000\000\000\000\000\b\154\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\017r\000\000\000\000\b\162\000\000\001\150\017v\000\000\000\000\000\000\000\000\000\000\007A\000\000\b\166\001\154\b\182\002\230\000\000\001\138\000\000\000\000\b\014\000\000\000\000\b\018\000\000\b\190\000\000\000\000\000\000\000\000\000\000\b\198\000\000\000\000\000\000\000\000\000\000\005]\000\n\002\246\b\202\000\000\000\000\005\233\000\000\b\210\003r\000\000\b.\b:\000\000\000\000\bR\bj\bn\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\br\003&\000\000\bv\bz\b~\b\130\003.\000\000\000\000\000\000\b\134\b\138\000\000\000\000\b\142\001\154\000\000\000\000\011I\011I\000\000\000\000\000\000\011I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\146\b\150\000\000\000\000\000\000\000\000\b\154\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007A\000\000\b\166\000\000\b\182\002\230\000\000\001\138\000\000\000\000\b\014\000\000\000\000\b\018\000\000\b\190\000\000\000\000\000\000\000\000\000\000\b\198\000\000\000\000\000\000\000\000\000\000\t\237\000\000\002\246\b\202\000\000\000\000\000\000\000\000\b\210\003r\000\000\b.\b:\000\000\n\210\bR\bj\bn\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\br\003&\000\000\bv\bz\b~\b\130\003.\n\218\n\226\000\000\b\134\b\138\000\000\000\000\b\142\001\154\000\000\000\000\000\000\000\000\000\000\000\000\n\234\000\000\000\000\000\000\000\000\000\000\n\242\n\250\000\000\b\146\b\150\000\000\000\000\000\000\000\000\b\154\011\002\000\000\000\n\011\n\000\000\011\018\000\000\000\000\000\000\000\000\000\000\b\162\000\000\017\145\000\000\000\000\017\145\000\000\000\000\000\000\007A\000\000\b\166\000\000\b\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\026\000\000\000\000\b\190\000\000\000\000\000\000\017\145\017\145\b\198\000\000\000\000\017\145\000\000\000\000\002\129\017\145\000\000\b\202\000\000\000\000\000\000\017\145\b\210\003r\017\145\017\145\000\000\017\145\017\145\000\000\000\000\000\000\000\000\017\145\000\000\b*\000\000\017\145\000\000\011\"\017\145\000\000\017\145\017\145\000\000\000\000\011*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\161\000\000\000\000\000\000\000\000\000\000\000\000\006\161\000\000\017\145\000\000\017\145\000\000\000\000\000\000\0112\011:\000\000\000\000\000\000\000\000\000\000\017\145\000R\000V\000f\000\194\012\250\000\198\016\202\000\202\000\210\000\218\0016\016\206\001F\001N\000\000\001v\030\206\001~\016\210\001\134\002j\002r\002v\016\214\030\210\000\000\017\145\017\145\000\000\017\145\017\145\000\000\000\000\017\145\000\000\000\000\000\000\000\000\002~\017!\000\000\000\000\017!\000\000\002\162\000\000\000\000\017\145\000\000\000\000\017\145\017\145\017\145\017\145\017\145\002\134\000\000\000\000\017\145\017\145\017\145\000\000\017\145\017\145\017\145\017!\017!\000\000\000\000\000\000\017!\000\000\000\000\000\000\017!\002\150\000\000\000\000\000\000\000\000\017!\000\000\000\000\017!\017!\000\000\017!\017!\000\000\000\000\002\154\000\000\017!\000\000\b*\000\000\017!\000\000\000\000\017!\000\000\017!\017!\000\000\000\000\000\000\000\000\000\000\000\000\017\006\017\n\000\000\014v\000\000\000\000\000\000\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!\000\000\017!\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\017!\005\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0079\017\014\017!\017!\000\000\017!\017!\000\000\000\000\017!\000\000\0079\000\000\000\000\000\000\017]\0079\000\000\017]\000\000\000\000\000\000\000\000\017!\000\000\000\000\017!\017!\017!\017!\017!\000\000\000\000\000\000\017!\017!\017!\000\000\017!\017!\017!\017]\017]\000\000\000\000\000\000\017]\000\000\000\000\018\186\017]\000\000\000\000\000\000\000\000\000\000\017]\000\000\000\000\017]\017]\000\000\017]\017]\000\000\000\000\018\194\000\000\017]\018\206\000\000\000\000\017]\000\000\000\000\017]\000\000\017]\017]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\017]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\000\000\018\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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]\017]\000\000\017]\000\000\018\222\002\230\017]\001\138\000\000\000\000\b\014\000\000\000\000\b\018\000\000\018\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\017]\000\000\000\000\000\000\002\246\000\000\017]\017]\017]\000\000\017]\017]\017]\b.\b:\000\000\000\000\bR\bj\011b\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\br\003&\000\000\bv\bz\b~\b\130\003.\000\000\000\000\000\000\b\134\b\138\000\000\000\000\b\142\001\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\000\000\000\000\001\209\000\000\000\000\000\000\b\146\b\150\000\000\000\000\000\000\000\000\b\154\000\000\001\209\000\n\000\000\001\209\000\000\000\000\000\000\000\000\000\000\000\000\b\162\001\209\001\209\000\000\000\000\000\000\001\209\000\000\000\000\007A\001\209\000\000\000\000\b\182\000\000\000\000\001\209\001\209\000\000\001\209\001\209\001\209\001\209\001\209\b\190\001\209\000\000\000\000\001\209\000\000\b\198\001\209\001\209\000\000\001\209\001\209\t\253\001\209\001\209\b\202\000\000\000\000\000\000\001\209\b\210\003r\000\000\001\209\000\000\000\000\001\209\000\000\001\209\001\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\000\000\001\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\000\000\001\209\000\000\001\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\003\174\000\000\001\209\001\209\000\000\000\000\001\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\003\182\000\000\001\209\001\209\000\000\001\209\001\209\000\000\001\209\001\209\001\209\001\209\001Y\000\000\000\000\001Y\004\226\001\209\001\209\000\000\001\209\001\209\001\209\001\209\001\209\001\209\001\209\000\000\000\000\000\000\000\000\004\214\001\209\001\209\000\000\001\209\001\209\001\209\001Y\001Y\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001Y\001Y\000\000\001Y\001Y\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001Y\000\000\000\000\003\246\000\000\004\006\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\005=\005=\005=\005=\000\000\005=\000\000\005=\005=\005=\005=\000\000\005=\005=\000\000\005=\000\000\005=\000\000\005=\005=\005=\005=\000\000\000\000\000\000\001Y\000\000\000\000\001Y\001Y\000\000\002\202\003\254\000\000\000\000\000\000\000\000\005=\001M\000\000\000\000\001M\000\000\005=\000\000\000\000\001Y\000\000\000\000\001Y\001Y\001Y\001Y\001Y\005=\000\000\000\000\000\000\001Y\001Y\000\000\001Y\001Y\001Y\001M\001M\000\000\000\000\000\000\001M\000\000\000\000\000\000\001M\005=\000\000\000\000\000\000\000\000\001M\005=\000\000\001M\001M\000\000\001M\001M\000\000\000\000\005=\000\000\001M\000\000\000\000\000\000\001M\000\000\000\000\003\246\000\000\001M\001M\000\000\005=\005=\000\000\000\000\000\000\000\000\000\000\000\000\005=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001M\000\000\001M\000\000\000\000\000\000\000\000\000\000\000\000\005=\000\000\000\000\000\000\001M\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\001M\000\000\000\000\001M\001M\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\001Q\005=\000\000\001Q\000\000\002\162\000\000\000\000\001M\000\000\000\000\001M\001M\001M\001M\001M\002\134\000\000\000\000\000\000\001M\001M\000\000\001M\001M\001M\001Q\001Q\000\000\000\000\000\000\001Q\000\000\000\000\000\000\001Q\002\166\000\000\000\000\000\000\000\000\001Q\002\194\000\000\001Q\001Q\000\000\001Q\001Q\000\000\000\000\002\154\000\000\001Q\000\000\000\000\000\000\001Q\000\000\000\000\003\246\000\000\001Q\001Q\000\000\002\170\002\174\000\000\000\000\000\000\000\000\000\000\000\000\002\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\001Q\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\001Q\000\000\000\000\000\000\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\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\001Q\001Q\000\000\000\000\003\254\000\000\000\000\000\000\000\000\000\000\001U\014\233\000\000\001U\000\000\000\000\000\000\000\000\001Q\000\000\000\000\001Q\001Q\001Q\001Q\001Q\000\000\000\000\000\000\000\000\001Q\001Q\000\000\001Q\001Q\001Q\001U\001U\000\000\000\000\000\000\001U\000\000\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001U\001U\000\000\001U\001U\000\000\000\000\000\000\000\000\001U\000\000\000\000\000\000\001U\000\000\000\000\003\246\000\000\004\006\001U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001U\000\000\001U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001U\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\001U\000\000\000\000\001U\001U\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\001e\000\000\000\000\001e\000\000\002\162\000\000\000\000\001U\000\000\000\000\001U\001U\001U\001U\001U\002\134\000\000\000\000\000\000\001U\001U\000\000\001U\001U\001U\003\230\004\014\000\000\000\000\000\000\001e\000\000\000\000\000\000\001e\002\166\000\000\000\000\000\000\000\000\003\238\002\194\000\000\001e\001e\000\000\001e\001e\000\000\000\000\002\154\000\000\001e\000\000\000\000\000\000\001e\000\000\000\000\003\246\000\000\004\006\001e\000\000\002\170\002\174\000\000\000\000\000\000\000\000\000\000\000\000\002\178\000\000\000\000\000\000\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\030\000\000\001e\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\001e\000\000\000\000\000\000\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\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001e\000\000\000\000\001e\001e\000\000\000\000\003\254\000\000\000\000\000\000\000\000\000\000\001]\002\181\000\000\001]\000\000\000\000\000\000\000\000\001e\000\000\000\000\001e\001e\001e\001e\001e\000\000\000\000\000\000\000\000\001e\001e\000\000\001e\001e\001e\003\230\004\014\000\000\000\000\000\000\001]\000\000\000\000\000\000\001]\000\000\000\000\000\000\000\000\000\000\003\238\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\001]\000\000\000\000\003\246\000\000\004\006\001]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001]\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\001]\000\000\000\000\001]\001]\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\001a\000\000\000\000\001a\000\000\002\162\000\000\000\000\001]\000\000\000\000\001]\001]\001]\001]\001]\002\134\000\000\000\000\000\000\001]\001]\000\000\001]\001]\001]\003\230\004\014\000\000\000\000\000\000\001a\000\000\000\000\000\000\001a\002\166\000\000\000\000\000\000\000\000\003\238\002\194\000\000\001a\001a\000\000\001a\001a\000\000\000\000\002\154\000\000\001a\000\000\000\000\000\000\001a\000\000\000\000\003\246\000\000\004\006\001a\000\000\002\170\002\174\000\000\000\000\000\000\000\000\000\000\000\000\002\178\000\000\000\000\000\000\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\030\000\000\001a\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\001a\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\001a\000\000\000\000\001a\001a\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\001i\002\173\000\000\001i\000\000\000\000\000\000\000\000\001a\000\000\000\000\001a\001a\001a\001a\001a\002\134\000\000\000\000\000\000\001a\001a\000\000\001a\001a\001a\003\230\004\014\000\000\000\000\000\000\001i\000\000\000\000\000\000\001i\002\150\000\000\000\000\000\000\000\000\003\238\006\254\000\000\001i\001i\000\000\001i\001i\000\000\000\000\002\154\000\000\001i\000\000\007\002\007\006\004\022\000\000\000\000\003\246\000\000\004\006\001i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\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\004\030\000\000\001i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001i\000\000\000\000\000\000\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\014\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\001i\001i\000\000\000\000\003\254\000\000\000\000\000\000\005m\000\000\001q\000\000\000\000\001q\000\000\000\000\000\000\000\000\001i\000\000\000\000\001i\001i\001i\001i\001i\000\000\000\000\000\000\000\000\001i\001i\000\000\001i\001i\001i\003\230\004\014\000\000\000\000\000\000\001q\000\000\000\000\000\000\001q\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001q\001q\000\000\001q\001q\000\000\000\000\000\000\000\000\001q\000\000\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\001q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\030\000\000\001q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001q\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\004&\000\000\000\000\001q\001q\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\004v\000\000\000\000\001m\000\000\000\000\000\000\000\000\001q\000\000\000\000\001q\001q\001q\001q\001q\002\134\000\000\000\000\000\000\001q\001q\000\000\001q\004.\001q\003\230\004\014\000\000\000\000\000\000\001m\000\000\000\000\000\000\001m\002\150\000\000\000\000\000\000\000\000\003\238\006\254\000\000\001m\001m\000\000\001m\001m\000\000\000\000\002\154\000\000\001m\000\000\007\002\007\006\004\022\000\000\000\000\003\246\000\000\004\006\001m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\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\004\030\000\000\001m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001m\000\000\000\000\000\000\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\014\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\001m\001m\000\000\000\000\003\254\000\000\000\000\000\000\n%\000\000\004v\000\000\000\000\001u\000\000\000\000\000\000\000\000\001m\000\000\000\000\001m\001m\001m\001m\001m\000\000\000\000\000\000\000\000\001m\001m\000\000\001m\004.\001m\003\230\004\014\000\000\000\000\000\000\001u\000\000\000\000\000\000\001u\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001u\001u\000\000\001u\004~\t\178\000\000\000\000\t\186\001u\000\000\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\001u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\030\t\218\001u\000\000\000\000\0025\000\000\t\226\t\234\000\000\000\000\000\000\000\000\001u\000\000\000\000\000\000\t\242\000\000\000\000\t\250\004%\n\002\000\000\000\000\000j\004%\000\000\000z\000\000\000\154\004%\000\000\004%\000\000\000\000\000\000\000\162\004%\004%\004&\000\000\000\000\001u\001u\000\000\000\000\003\254\000\000\n\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004%\000\000\001u\000\000\000\000\001u\001u\001u\001u\001u\000\000\000\170\004%\000\000\001u\001u\004%\001u\004.\001u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\018\004%\004%\0025\000\000\000\000\000\000\n\026\000\000\000\000\000\000\000\000\000\000\000\000\004%\000\000\000\186\000\000\000\000\000\000\000\000\0025\000\000\004%\000\000\0025\0025\000\000\004%\004%\000\000\000\000\000\000\000\000\000\000\000\000\n\"\n*\004%\000\000\004!\000\000\004%\000\000\000\222\004!\000\000\000\238\000\000\001\014\004!\000\000\004!\004%\000\000\000\000\001\022\004!\004!\000\000\000\000\000\000\000\000\004%\000\000\000\000\000\000\000\000\004%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\030\004!\000\000\000\000\000\000\004!\000\000\000\000\000\000\000\000\000\000\000\000\004%\000\000\000\000\004%\004%\000\000\000\000\004%\004!\004!\000\000\003\218\004%\004%\0046\000\000\000\000\004%\000\000\000\000\000\000\004!\000\000\001.\000\000\000\000\000\000\000\000\000\000\000\000\004!\000\000\000\000\000\000\000\000\004!\004!\004V\004^\000\189\000\000\000\000\002-\000\000\000\000\004!\002-\000\000\000\000\004!\000\000\000\000\004f\000\000\000\000\002-\002-\000\165\004n\004\142\004!\000\000\000\000\000\000\002-\003\230\004\014\000\000\004\150\000\000\004!\004\158\000\000\004\166\002-\004!\000\000\000\000\000\000\000\000\003\238\000\000\000\000\000\165\000\165\000\000\000\189\000\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\022\000\000\003\238\003\246\004\174\004\006\002-\000\000\000\165\000\165\000\000\000\000\004!\000\000\000\000\004!\004!\002-\000\165\004!\000\000\003\246\000\000\004\006\004!\004!\000\000\000\000\000\000\004!\000\000\000\000\004\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\182\000\000\000\000\002-\002-\000\000\000\165\004\190\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\129\000\000\000\000\000\000\000\000\002-\000\000\000\000\002-\002-\002-\002-\004&\000\000\000\000\000\000\000\000\002-\002-\003\254\004\198\004\206\002-\003\230\004\014\000\000\000\000\000\000\000\129\000\000\000\165\000\000\000\129\000\189\000\000\000\000\000\000\003\254\003\238\000\000\000\189\000\129\000\129\000\000\000\129\000\129\000\000\000\000\000\189\004.\000\129\000\165\000\000\000\000\004\022\000\000\000\000\003\246\000\165\004\006\000\129\000\000\000\000\000\000\000\000\000i\000\165\000\165\000i\000\000\000\000\000\000\000\000\000\000\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\030\000\000\000\129\000\000\000\000\000i\000i\000\000\000\000\000\000\000i\000\000\000\000\000\129\000i\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\000i\000i\000\000\000i\000i\000\000\000\000\000\000\000\000\000i\000\000\000\000\000\000\000i\000\000\000\000\003\246\004&\004\006\000i\000\129\000\129\000\000\000\000\003\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\129\000\129\000\129\000\129\000i\000\000\000i\000\000\000\000\000\129\000\129\000\000\000\129\004.\000\129\000\000\000\000\000i\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000i\000\000\000\000\000i\000i\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\000e\000\000\000\000\000e\000\000\000\000\000\000\000\000\000i\000\000\000\000\000i\000i\000i\000i\000\000\002\134\000\000\000\000\000\000\000i\000i\000\000\000i\000i\000i\000e\000e\000\000\000\000\000\000\000e\000\000\000\000\000\000\000e\002\150\000\000\000\000\000\000\000\000\003\238\006\254\000\000\000e\000e\000\000\000e\000e\000\000\000\000\002\154\000\000\000e\000\000\007\002\007\006\000e\000\000\000\000\003\246\000\000\004\006\000e\000\000\000\000\000\000\000\000\000]\000\000\000\000\000]\000\000\007\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\000e\000\000\000e\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]\000]\000\000\007\014\000\000\000\000\000]\000\000\000\000\000\000\000]\000\000\000\000\003\246\000e\000]\000]\000e\000e\000\000\000\000\003\254\000\000\000\000\000\000\002\161\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\000e\000e\000\000\000e\000e\000e\000\000\000\000\000]\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000]\000\000\000\000\000]\000]\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\004v\000\000\000\000\000\137\000\000\000\000\000\000\000\000\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]\003\230\004\014\000\000\000\000\000\000\000\137\000\000\000\000\000\000\000\137\002\150\000\000\000\000\000\000\000\000\003\238\031\138\000\000\000\137\000\137\000\000\000\137\004~\000\000\000\000\002\154\000\000\000\137\000\000\031\142\007\006\004\022\000\000\000\000\003\246\000\000\004\006\000\137\000\000\000\000\000\000\000\000\004v\000\000\000\000\000}\000\000\007\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\004\030\000\000\000\137\000\000\000\000\003\230\004\014\000\000\000\000\000\000\000}\000\000\000\000\000\137\000}\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\000}\000}\000\000\000}\000}\000\000\031\146\000\000\000\000\000}\000\000\000\000\000\000\004\022\000\000\000\000\003\246\004&\004\006\000}\000\137\000\137\000\000\000\000\003\254\000\000\000\000\000\000\005e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\137\000\000\000\000\000\137\000\137\000\137\000\137\004\030\000\000\000}\000\000\000\000\000\137\000\137\000\000\004\134\004.\000\137\000\000\000\000\000}\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\004&\000\000\000\000\000}\000}\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\000u\000\000\000\000\000u\000\000\000\000\000\000\000\000\000}\000\000\000\000\000}\000}\000}\000}\000\000\002\134\000\000\000\000\000\000\000}\000}\000\000\000}\004.\000}\003\230\004\014\000\000\000\000\000\000\000u\000\000\000\000\000\000\000u\002\150\000\000\000\000\000\000\000\000\003\238\031\138\000\000\000u\000u\000\000\000u\000u\000\000\000\000\002\154\000\000\000u\000\000\031\142\007\006\000u\000\000\000\000\003\246\000\000\004\006\000u\000\000\000\000\000\000\000\000\000a\000\000\000\000\000a\000\000\007\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\004\030\000\000\000u\000\000\000\000\000a\000a\000\000\000\000\000\000\000a\000\000\000\000\000u\000a\000\000\000\000\000\000\000\000\000\000\000a\000\000\000\000\000a\000a\000\000\000a\000a\000\000\031\146\000\000\000\000\000a\000\000\000\000\000\000\000a\000\000\000\000\003\246\000u\000a\000a\000u\000u\000\000\000\000\003\254\000\000\000\000\000\000\n\t\000\000\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\000a\000\000\000a\000\000\000\000\000u\000u\000\000\000u\000u\000u\000\000\000\000\000a\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000a\000\000\000\000\000a\000a\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\000m\000\000\000\000\000m\000\000\000\000\000\000\000\000\000a\000\000\000\000\000a\000a\000a\000a\000\000\002\134\000\000\000\000\000\000\000a\000a\000\000\000a\000a\000a\003\230\004\014\000\000\000\000\000\000\000m\000\000\000\000\000\000\000m\002\150\000\000\000\000\000\000\000\000\003\238\031\138\000\000\000m\000m\000\000\000m\000m\000\000\000\000\002\154\000\000\000m\000\000\031\142\007\006\000m\000\000\000\000\003\246\000\000\004\006\000m\000\000\000\000\000\000\000\000\000q\000\000\000\000\000q\000\000\007\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\000m\000\000\000m\000\000\000\000\003\230\004\014\000\000\000\000\000\000\000q\000\000\000\000\000m\000q\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\000q\000q\000\000\000q\000q\000\000\031\146\000\000\000\000\000q\000\000\000\000\000\000\000q\000\000\000\000\003\246\000m\004\006\000q\000m\000m\000\000\000\000\003\254\000\000\000\000\000\000\002\145\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\000m\000m\004\030\000\000\000q\000\000\000\000\000m\000m\000\000\000m\000m\000m\000\000\000\000\000q\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000q\000\000\000\000\000q\000q\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\004v\000\000\000\000\000\133\000\000\000\000\000\000\000\000\000q\000\000\000\000\000q\000q\000q\000q\000\000\002\134\000\000\000\000\000\000\000q\000q\000\000\000q\000q\000q\003\230\004\014\000\000\000\000\000\000\000\133\000\000\000\000\000\000\000\133\002\150\000\000\000\000\000\000\000\000\003\238\007\022\000\000\000\133\000\133\000\000\000\133\004~\000\000\000\000\002\154\000\000\000\133\000\000\007\002\007\006\004\022\000\000\000\000\003\246\000\000\004\006\000\133\000\000\000\000\000\000\000\000\000y\000\000\000\000\000y\000\000\007\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\004\030\000\000\000\133\000\000\000\000\003\230\004\014\000\000\000\000\000\000\000y\000\000\000\000\000\133\000y\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\000y\000y\000\000\000y\000y\000\000\000\000\000\000\000\000\000y\000\000\000\000\000\000\004\022\000\000\000\000\003\246\004&\004\006\000y\000\133\000\133\000\000\000\000\003\254\000\000\000\000\000\000\n5\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\133\000\000\000\000\000\133\000\133\000\133\000\133\004\030\000\000\000y\000\000\000\000\000\133\000\133\000\000\000\133\004.\000\133\000\000\000\000\000y\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\254\007!\016\014\000\000\000\000\000\000\000\000\016\022\000\000\000\000\000\000\000\000\000\000\007!\004&\000\000\000\000\000y\000y\000\000\000\000\003\254\000\000\000\000\007!\000\000\007!\012\213\012\213\000\000\007!\007!\000\000\012\213\000\000\000y\007!\000\000\000y\000y\000y\000y\007!\000\000\000\000\007!\000\000\000y\000y\007!\000y\000y\000y\000\000\000\000\007!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007!\016J\000\000\012\213\000\000\007!\000Z\000\000\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007!\012\213\000\000\007!\000\000\000\000\007!\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\238\007!\000\000\000\000\000\000\000\000\007!\007!\007!\000\000\007!\007!\000\000\007!\000\000\000\000\002\246\000\000\000\000\002\250\007!\000\000\000\000\007!\000\000\003\006\003\n\000\000\003\018\000\000\b\178\000\000\000\000\000\000\000\000\003\026\000\000\003\030\007!\000\000\000\000\000\000\000\000\007!\007!\012\213\003\"\003&\000\000\000\000\011~\003*\001\238\003.\000\000\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\000\000\000\000\000\000\r\030\007!\r.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003B\007!\000\000\000\000\000\000\003F\000\000\000\000\000\n\r\138\007!\r\154\007!\000\000\007!\000\000\000\000\003N\007!\007!\000\000\000\000\007!\000\000\007!\007!\000\000\000\000\003R\n\213\007!\000\000\000~\007!\000\142\007!\000\000\007!\000\000\007!\007!\003V\007!\007!\000\000\007!\000\000\003b\000\000\000\000\n\213\007!\n\213\000\000\007!\016\138\003z\000\000\007!\007!\000Z\003j\003r\007!\007!\007!\0152\007!\015B\015\158\007!\015\174\000\000\000\000\000\000\007!\016\182\000\000\000\000\007!\007!\000Z\007!\000\000\000\130\007!\007!\007!\000\000\000\000\007!\000\000\007!\007!\007!\007!\007!\007!\000\000\007!\007!\000\000\007!\000\000\000Z\007!\007!\007!\007!\000\000\000\000\007!\007!\007!\007!\007!\007!\000\000\007!\000\000\000\000\007!\007!\000\000\007!\007!\000\000\007!\007!\007!\000\000\007!\007!\007!\007!\007!\007!\007!\000Z\007!\007!\000Z\000\000\007!\007!\007!\007!\000\000\007!\007!\000\000\000\000\000\000\000\000\000Z\000\000\007!\007!\000\000\000\000\000\000\007!\000\000\000\000\007!\007!\007!\000\000\007!\007!\007!\007!\007!\000\000\007!\000\000\000\000\000\000\000\000\000\000\000\000\007!\000\000\000\000\007!\007!\000\000\007!\000\000\007!\007!\007!\007!\007!\007!\000\000\007!\007!\007!\007!\000\000\007!\000\000\007!\000\000\017u\007!\007!\017u\007!\000\000\007!\000\000\000\000\007!\000\000\001R\000\000\001b\007!\000\000\007!\000\000\001j\007!\000\000\007!\007!\000\000\007!\007!\017u\017u\000\000\000\000\000\000\017u\000\000\000\000\000\000\017u\000\000\000\000\000\000\007!\000\000\017u\007!\007!\017u\017u\007!\017u\017u\000\000\000\000\007!\007!\017u\007!\b*\007!\017u\007!\000\000\017u\000\000\017u\017u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007!\007!\000\000\000\000\000\000\002\158\000\000\007!\r\"\000\000\000Z\000\000\000\000\007!\000\000\000\000\017u\000\000\017u\007!\000\000\000\000\007!\000\000\000\000\000\000\000\000\007!\007!\017u\007!\007!\007!\000\000\000\000\000\000\007!\007!\006*\000\000\006:\007!\007!\007!\000\000\006B\000\000\000\000\007!\007!\000\000\007!\007!\000\000\000\000\007!\017u\017u\000\000\017u\000\000\007!\007!\017u\000\000\000\000\000\000\007!\000\000\007!\000\000\000\000\007!\000\000\007!\rz\000\000\007!\000Z\000\000\017u\007!\017u\007!\000\000\007!\007!\000\000\017u\017u\017u\000\000\017u\017u\017u\000\000\000\000\007!\000\000\007!\007!\007!\000\000\007!\007!\007!\000\000\007!\007!\007!\000Z\007!\007!\007!\000\000\007!\000\000\007!\007!\000\000\000\000\000\000\007!\000\000\007!\000\000\000\000\007!\007!\007!\007!\007!\000\000\007!\007!\000\000\007!\007!\000\000\007!\000\000\007!\000\000\007!\007!\000Z\007!\000\000\000\000\000\000\007!\000\000\007!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007!\007!\000\000\000\000\000\000\007!\007!\000\000\000\000\000\000\000\000\007!\000\000\000\000\007!\000\000\000\000\007!\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\238\007!\000\000\000\000\000\000\000\000\007!\007!\007!\000\000\007!\007!\000\000\007!\007!\000\000\002\246\007!\000\000\002\250\007!\000\000\007!\007!\000\000\003\006\003\n\007!\003\018\000\000\b*\000\000\000\000\000\000\000\000\003\026\000\000\003\030\007!\000\000\000\000\000\000\000\000\007!\007!\000\000\003\"\003&\000\000\000\000\000\000\003*\001\238\003.\000\000\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\000\000\000\000\000\000\000\000\007!\r\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003B\007!\r\210\000\000\000\000\003F\000\000\000\000\000\n\007!\r\238\000\000\007!\007!\007!\000\000\000\000\003N\007!\007!\000\000\007!\000\000\000\000\007!\000\000\007!\000\000\003R\000\000\007!\007!\007!\007!\007!\000\000\007!\007!\007!\007!\000\000\003V\007!\007!\007!\007!\000\000\003b\000\000\007!\007!\000\000\000\000\007!\007!\007!\003z\007!\000\000\007!\000Z\003j\003r\007!\015\"\007!\007!\000\000\000\000\000\000\000\000\007!\000Z\000\000\007!\007!\0156\007!\000\000\007!\000Z\000\000\007!\015\142\000\000\007!\007!\007!\007!\000\000\007!\000\000\007!\007!\007!\015\162\000\000\000\000\007!\007!\007!\000\000\007!\000\000\007!\007!\007!\007!\015\230\000\000\007!\007!\007!\007!\000\000\007!\007!\007!\007!\007!\007!\016\002\000\000\007!\007!\007!\007!\007!\007!\007!\007!\007!\007!\007!\000Z\007!\007!\007!\007!\007!\007!\000\000\007!\007!\000\000\007!\000Z\007!\007!\007!\007!\007!\007!\000Z\000\000\007!\000\000\000\000\007!\007!\007!\007!\000\000\007!\007!\000Z\000\000\007!\007!\007!\007!\000\000\007!\007!\007!\000\000\007!\007!\000Z\007!\007!\000\000\000\000\007!\000\000\007!\007!\007!\000\000\007!\007!\000Z\007!\000\000\000\000\007!\007!\007!\007!\007!\000\000\007!\007!\000\000\007!\007!\007!\000\000\007!\007!\000\000\007!\000\000\000\000\007!\000\000\007!\007!\007!\000\000\007!\007!\007!\007!\007!\000\000\000\000\000\000\000\000\007!\007!\007!\000\000\007!\007!\007!\007!\007!\000\000\000\000\000\000\007!\007!\007!\007!\000\000\007!\007!\007!\007!\000\000\000\000\000\000\007!\007!\000\000\007!\000\000\000\000\007!\002\230\007!\001\138\000\000\000\000\002\234\007!\007!\002\238\000\000\000\000\000\000\000\000\000\000\007!\000\000\000\000\000\000\018\018\007!\007!\000\000\000\000\000\000\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\000\000\003\006\003\n\000\000\003\018\000\000\000\000\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\001\233\000\000\000\000\001\233\000\000\003\"\003&\000\000\000\000\000\000\003*\001\238\003.\000\000\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\000\000\000\000\000\000\001\233\001\233\000\000\000\000\000\000\001\233\000\000\000\000\000\000\001\233\000\000\000\000\003B\000\000\000\000\001\233\000\000\003F\001\233\001\233\000\n\001\233\001\233\000\000\000\000\000\000\000\000\001\233\000\000\003N\000\000\001\233\000\000\000\000\001\233\000\000\001\233\001\233\000\000\000\000\003R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003V\000\000\000\000\000\000\000\000\000\000\003b\000\000\000\000\000\000\001\233\000\000\001\233\000\000\000\000\003z\000\000\000\000\000\000\000\000\003j\003r\000\000\001\233\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\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\238\000\000\000\000\000\000\000\000\000\000\001\233\018\250\000\000\001\233\n\213\000\000\000\000\001\233\000\000\000\000\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\000\000\003\006\003\n\000\000\003\018\000\000\001\233\000\000\001\233\000\000\000\000\003\026\000\000\003\030\019\002\001\233\001\233\000\000\001\233\001\233\001\233\000\000\003\"\003&\000\000\000\000\000\000\003*\001\238\003.\000\000\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\000\000\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\238\000\000\000\000\003B\000\000\000\000\000\000\000\000\003F\000\000\0232\000\n\000\000\000\000\000\000\000\000\002\246\000\000\000\000\002\250\003N\000\000\000\000\000\000\000\000\003\006\003\n\000\000\003\018\000\000\000\000\003R\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\003V\000\000\003\"\003&\000\000\000\000\003b\003*\001\238\003.\000\000\000\000\000\000\0032\0036\003z\000\000\003:\003>\007!\003j\003r\000\000\000\000\007!\000\000\000\242\000\000\001\002\007!\000\000\007!\000\000\000\000\000\000\003B\007!\007!\000\000\000\000\003F\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003N\000\000\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\000\000\000\000\000\000\007!\000\000\000\000\000\000\007!\000\000\000\000\003V\000\000\002\230\000\000\001\138\000\000\003b\002\234\000\000\000\000\002\242\000\000\007!\007!\000\000\003z\000\000\006v\000\000\000\000\003j\003r\000Z\000\000\000\000\007!\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\007!\003\006\012V\000\000\003\018\007!\007!\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\007!\000\000\000\000\000\000\007!\000\000\000\000\003\"\003&\000\000\000\000\000\000\003*\001\238\003.\007!\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\007!\000\000\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\003Z\000\000\000\000\000\n\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\003N\002\242\000\000\000\000\000\000\000\000\007!\000\000\000\000\007!\007!\003R\000\000\007!\000\000\000\000\000\000\002\246\007!\007!\002\250\000\000\000\000\007!\003^\000\000\003\006\012F\000\000\003\018\003b\000\000\000\000\000\000\000\000\000\000\003\026\000\000\003\030\003f\000\000\000\000\000\000\000\000\003j\003r\000\000\003\"\003&\000\000\000\000\000\000\003*\001\238\003.\000\000\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\000\000\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\242\000\000\000\000\003B\000\000\000\000\000\000\000\000\003Z\000\000\000\000\000\n\000\000\000\000\000\000\000\000\002\246\000\000\000\000\002\250\003N\000\000\000\000\000\000\000\000\003\006\012.\000\000\003\018\000\000\000\000\003R\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\003^\000\000\003\"\003&\000\000\000\000\003b\003*\001\238\003.\000\000\000\000\000\000\0032\0036\003f\000\000\003:\003>\000\000\003j\003r\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\242\000\000\000\000\003B\000\000\000\000\000\000\000\000\003Z\000\000\000\000\000\n\000\000\000\000\000\000\000\000\002\246\000\000\000\000\002\250\003N\000\000\000\000\000\000\000\000\003\006\003J\000\000\003\018\000\000\000\000\003R\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\003^\000\000\003\"\003&\000\000\000\000\003b\003*\001\238\003.\000\000\000\000\000\000\0032\0036\003f\000\000\003:\003>\007!\003j\003r\000\000\000\000\007!\000\000\005^\000\000\005n\007!\n\205\007!\000\000\000\000\000\000\003B\007!\007!\000\000\007!\003Z\000\000\n\205\000\n\007!\000\000\005\202\000\000\005\218\007!\000\000\007!\003N\n\205\000\000\n\205\007!\007!\000\000\n\205\000\000\000\000\000\000\003R\000\000\n\205\000\000\000\000\000\000\007!\000\000\n\205\000\000\007!\n\205\000\000\003^\007!\n\205\026\210\000\000\000\000\003b\000\000\n\205\000\000\000\000\000\000\007!\007!\000\000\003f\000\000\007!\000\000\000\000\003j\003r\000Z\000\000\n\205\007!\000\000\000\000\000\000\000\000\000\000\000\000\007!\007!\007!\000\000\000\000\006\182\000\000\007!\007!\000\000\000Z\000\000\000\000\007!\000\000\000\000\000\000\007!\000\000\000\000\000\000\007!\007!\n\205\000\000\000\000\n\205\007!\007!\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\007!\000\000\n\205\000\000\007!\007!\000\000\n\205\n\205\n\205\007!\n\205\n\205\000\000\n\205\007!\000\000\000\000\000\000\000\000\000\000\n\205\000\000\000\000\n\205\007!\000\000\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\205\000\000\000\000\000\000\007!\n\205\n\205\007!\007!\000\000\000\000\007!\000\000\000\000\000\000\000\000\007!\007!\002\230\000\000\001\138\007!\000\000\002\254\007!\000\000\003\002\007!\007!\000\000\000\000\007!\000\000\000\000\000\000\000\000\007!\007!\000\000\000\000\000\000\007!\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\000\000\003\022\007\246\000\000\003\018\000\000\b\n\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\254\003&\000\000\000\000\000\000\t\002\001\238\003.\000\161\000\000\000\000\t\n\t\014\000\000\000\000\t\018\003>\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\242\000\000\000\000\000\000\000\000\000\000\000\000\t\022\000\161\000\161\000\000\000\000\t\026\000\000\000\000\000\n\002\246\000\000\000\000\002\250\000\000\000\000\000\000\003\238\t\"\003\006\b\022\000\000\003\018\000\161\000\161\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\161\000\000\000\000\003\246\000\000\004\006\000\000\003\"\003&\t2\000\000\000\000\003*\001\238\003.\t:\000\000\000\000\0032\0036\000\000\000\000\003:\003>\t>\000\000\000\000\000\000\000\000\tF\003r\000\000\000\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\003Z\000\000\000\000\000\n\000\000\000\000\011\250\000\000\000\000\000\000\000\000\000\000\003N\000\000\000\000\000\000\005%\000\000\005%\000\000\000\000\005%\000\000\003R\005%\000\000\000\000\000\161\000\000\000\000\000\000\000\000\000\000\000\000\003\254\000\000\003^\000\000\000\000\000\000\005%\000\000\003b\005%\000\000\000\000\000\000\000\000\000\161\005%\005%\003f\005%\000\000\000\000\000\161\003j\003r\000\000\005%\000\000\005%\000\000\000\161\000\161\000\000\000\000\000\000\000\000\000\000\005%\005%\000\000\000\000\000\000\005%\005%\005%\000\000\000\000\000\000\005%\005%\000\000\000\000\005%\005%\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\242\000\000\000\000\000\000\000\000\000\000\000\000\005%\000\000\000\000\000\000\000\000\005%\000\000\000\000\005%\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\005%\003\006\017\254\000\000\003\018\000\000\000\000\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\"\003&\005%\000\000\000\000\003*\001\238\003.\005%\000\000\000\000\0032\0036\000\000\000\000\003:\003>\005%\000\000\000\000\000\000\000\000\005%\005%\000\000\000\000\000\000\000\000\025\234\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\003Z\000\000\025\238\000\n\000\000\000\000\000\000\000\000\000\000\028n\000\000\000\000\003N\025\242\000\000\025\246\r)\r)\000\000\025\250\000\000\000\000\000\000\003R\000\000\025\254\000\000\000\000\000\000\000\000\000\000\026\002\000\000\000\000\026\n\000\000\003^\000\000\026\014\000\000\000\000\000\000\003b\000\000\026\018\000\000\000\000\000\000\000\000\000\000\000\000\003f\000\000\000\000\000\000\025\234\003j\003r\r)\000\000\026\022\000\000\000\000\000\000\000\000\000\000\000\000\025\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\242\000\000\025\246\000\000\000\000\000\000\025\250\000\000\000\000\012\253\000\000\r)\025\254\026\026\000\000\000\000\026\030\000\000\026\002\000\000\000\000\026\n\000\000\000\000\000\000\026\014\000\000\027z\000\000\026\"\000\000\026\018\000\000\000\000\026&\000\n\026*\000\000\026.\0262\000\000\0266\028\234\027\254\000\000\012\253\000\000\026\022\026:\000\000\000\000\026>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026B\000\000\000\000\000\000\007!\026F\026J\r)\000\000\007!\012\253\000\000\026\026\000\226\007!\026\030\007!\000\000\000\000\000\000\000\000\007!\007!\000\000\000\000\000\000\000\000\000\000\026\"\000\000\000\000\000\000\000\000\026&\000\n\026*\007!\026.\0262\000\000\0266\007!\007!\007!\000\000\000\246\007!\026:\007!\000\000\026>\000\000\001:\007!\007!\007!\000\000\007!\007!\000\000\007!\007!\007!\000\000\000\000\026B\001V\007!\000\000\007!\026F\026J\012\253\007!\007!\007!\007!\000\000\007\190\000\000\000\000\007!\000\000\000Z\000\000\005N\007!\007!\007!\007!\007!\000\000\007!\007!\007!\007!\005b\007!\005\186\007!\007!\007!\000\000\000\000\007!\007!\007!\007!\007!\000\000\007!\007!\007!\007!\007!\000Z\000\000\005\206\007!\000\000\007!\000\000\000Z\000\000\000\000\007!\007!\007!\000\000\000\000\007!\012\138\007!\007!\007!\007!\000Z\007!\000\000\007!\007!\007!\007!\007!\000\000\007!\007!\007!\007!\007!\000\000\006\018\007!\007!\007!\000Z\007!\007!\007!\007!\007!\000\000\007!\007!\007!\000\000\000Z\007!\000Z\007!\000\000\007!\007!\007!\007!\000\000\007!\007!\007!\007!\007!\006.\007!\007!\007!\007!\007!\000Z\007!\007!\007!\000\000\007!\007!\000\000\007!\007!\007!\000\000\007!\000\000\000\000\000\000\000\000\007!\007!\000\000\007!\007!\007!\007!\007!\007!\000\000\007!\007!\007!\007!\007!\007!\007!\000Z\007!\007!\007!\007!\007!\000\000\000\000\007!\007!\000\000\000\000\007!\000\000\000\000\000\000\000\000\007!\007!\000\000\007!\007!\007!\007!\007!\000\000\000\000\007!\007!\000\000\000Z\007!\000\000\007!\000\000\007!\007!\007!\007!\007!\007!\007!\007!\000\000\007!\000\000\000\000\007!\007!\007!\007!\000\000\007!\000\000\007!\000\000\007!\007!\000\000\007!\007!\007!\000\000\007!\000\000\000\000\000\000\000\000\007!\007!\000\000\000\000\007!\007!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\007!\000\000\000\000\007!\000\000\000\000\007!\007!\019.\000\000\007!\0196\000\000\000\000\000\000\007!\007!\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007!\019F\019N\007!\007!\000\000\002=\007!\000\000\000\000\002=\000\000\007!\007!\000\000\000\000\019V\007!\000\000\002=\002=\000\000\019^\019f\000\000\000\000\000\000\0015\002=\000\000\0015\000\000\019n\000\000\000\000\019v\000\000\019~\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\003\230\004\014\000\000\000\000\000\000\0015\000\000\000\000\000\000\0015\000\000\019\134\000\000\002=\000\000\003\238\000\000\000\000\0015\0015\000\000\0015\0015\000\000\002=\000\000\000\000\0015\000\000\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\0015\000\000\000\000\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\019\142\001F\001N\002=\001v\000\000\001~\019\150\001\134\002j\002r\002v\004\030\000\000\0015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002=\0015\002=\002~\000\000\000\000\000\000\000\000\000\000\002=\002=\000\000\019\158\019\166\002=\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\004&\000\000\000\000\0015\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002\150\001\029\000\000\000\000\001\029\000\000\031\154\000\000\000\000\000\000\000\000\000\000\0015\000\000\0015\002\154\000\000\000\000\000\000\031\142\007\006\0015\0015\000\000\0015\004.\0015\001\029\001\029\000\000\000\000\000\000\001\029\000\000\000\000\000\000\001\029\007\n\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001\029\001\029\000\000\001\029\001\029\000\000\000\000\000\000\001\025\001\029\000\000\001\025\000\000\001\029\000\000\000\000\003\246\000\000\004\006\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\025\001\025\000\000\000\000\000\000\001\025\000\000\000\000\000\000\001\025\000\000\001\029\000\000\001\029\000\000\003\238\000\000\000\000\001\025\001\025\000\000\001\025\001\025\000\000\001\029\n\025\000\000\001\025\000\000\000\000\000\000\001\025\000\000\000\000\003\246\000\000\004\006\001\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\001\029\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\000\001\025\000\000\001\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\001\025\001\029\000\000\000\000\000\000\000\000\000\000\000\000\001\029\001\029\000\000\001\029\001\029\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\025\000\000\000\000\001\025\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\000\000\000\001\017\000\000\000\000\001\017\000\000\000\000\000\000\000\000\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\001\017\001\017\000\000\000\000\000\000\001\017\000\000\000\000\000\000\001\017\000\000\000\000\000\000\000\000\000\000\001\017\000\000\000\000\001\017\001\017\000\000\001\017\001\017\000\000\000\000\000\000\004v\001\017\000\000\001=\000\000\001\017\000\000\000\000\003\246\000\000\001\017\001\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\230\004\014\000\000\000\000\000\000\001=\000\000\000\000\000\000\001=\000\000\001\017\000\000\001\017\000\000\003\238\000\000\000\000\001=\001=\000\000\001=\004~\000\000\001\017\000\000\000\000\001=\000\000\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\001=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000\000\000\000\001\017\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\000\004\030\000\000\001=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\001=\001\017\000\000\000\000\000\000\000\000\000\000\000\000\001\017\001\017\000\000\001\017\001\017\001\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004&\000\000\000\000\001=\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\000\000\000\004v\000\000\000\000\0011\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\001=\001=\000\000\004\134\004.\001=\003\230\004\014\000\000\000\000\000\000\0011\000\000\000\000\000\000\0011\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\0011\0011\000\000\0011\0011\000\000\000\000\000\000\001)\0011\000\000\001)\000\000\004\022\000\000\000\000\003\246\000\000\004\006\0011\000\000\000\000\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\230\004\014\000\000\000\000\000\000\001)\000\000\000\000\000\000\001)\000\000\004\030\000\000\0011\000\000\003\238\000\000\000\000\001)\001)\000\000\001)\001)\000\000\0011\000\000\000\000\001)\000\000\000\000\000\000\001)\000\000\000\000\003\246\000\000\004\006\001)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004&\000\000\000\000\0011\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\000\004\030\000\000\001)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0011\001)\0011\000\000\000\000\000\000\000\000\000\000\000\000\0011\0011\000\000\0011\004.\0011\000\000\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\003\254\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\001\021\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\001)\001)\000\000\001)\001)\001)\001\021\001\021\000\000\000\000\000\000\001\021\000\000\000\000\000\000\001\021\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\001\021\001\021\000\000\001\021\001\021\000\000\000\000\000\000\001!\001\021\000\000\001!\000\000\001\021\000\000\000\000\003\246\000\000\001\021\001\021\000\000\000\000\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\230\004\014\000\000\000\000\000\000\001!\000\000\000\000\000\000\001!\000\000\001\021\000\000\001\021\000\000\003\238\000\000\000\000\001!\001!\000\000\001!\001!\000\000\001\021\000\000\000\000\001!\000\000\000\000\000\000\001!\000\000\000\000\003\246\000\000\004\006\001!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\001\021\000\000\000\000\000\000\003\254\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\001\021\001!\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\000\000\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\003\254\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\000\000\001!\000\000\001!\000\000\000\000\000\000\000\000\000\000\000\000\001!\001!\000\000\001!\001!\001!\003\230\004\014\000\000\000\000\000\000\001%\000\000\000\000\000\000\001%\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001%\001%\000\000\001%\001%\000\000\000\000\000\000\004v\001%\000\000\0019\000\000\001%\000\000\000\000\003\246\000\000\004\006\001%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\230\004\014\000\153\000\000\000\000\0019\000\000\000\000\000\000\0019\000\000\004\030\000\000\001%\000\000\003\238\000\000\000\000\0019\0019\000\000\0019\004~\000\000\001%\000\000\000\000\0019\000\153\000\153\000\000\004\022\000\000\000\000\003\246\000\000\004\006\0019\000\000\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\000\000\153\000\153\001%\000\000\000\000\001%\000\000\000\000\000\000\003\254\000\153\000\000\000\000\003\246\004\030\000\153\0019\004v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001%\0019\001%\000\000\000\000\000\000\000\000\000\000\000\000\001%\001%\000\000\001%\001%\001%\000\000\000\153\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004&\000\000\000\000\0019\003\238\000\000\000\000\003\254\000\000\000\000\000\197\004~\000\000\001-\000\000\000\000\001-\000\000\000\000\000\000\004\022\000\000\000\000\003\246\0019\004\006\0019\000\000\000\153\000\000\000\000\000\000\000\000\0019\0019\003\254\0019\004.\0019\003\230\004\014\000\000\000\000\000\000\001-\000\000\000\000\000\000\001-\000\153\000\000\000\000\004\030\000\000\003\238\000\000\000\153\001-\001-\000\000\001-\001-\000\000\000\000\000\153\000\153\001-\000\000\000\000\000\000\004\022\000\000\028\214\003\246\028\222\004\006\001-\000\000\000\000\000\000\000\000\000\000\000\000\028\230\000\000\000\000\000\000\000\000\029\006\000\000\000\000\000\000\004&\000\000\000\000\025\238\000\000\000\000\000\000\003\254\000\000\000\000\004\030\000\000\001-\000\000\025\242\000\000\025\246\000\000\000\000\000\000\025\250\000\197\000\000\001-\000\000\000\000\025\254\000\000\000\197\000\000\000\000\000\000\026\002\000\000\000\000\026\n\004\134\004.\000\000\026\014\000\000\000\000\000\000\000\000\000\000\026\018\000\000\000\000\000\000\000\000\004&\000\000\000\000\001-\000\000\000\000\000\000\003\254\000\000\000\000\000\000\026\022\029\014\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\001-\001-\000\000\001-\001-\001-\000\000\000\000\000\000\026\026\000\000\000\000\026\030\000\000\000\000\002\230\000\000\001\138\000\000\000\000\b\014\000\000\000\000\b\018\000\000\026\"\000\000\000\000\000\000\000\000\026&\000\n\026*\000\000\026.\0262\000\000\0266\017A\002\246\000\000\017A\000\000\000\000\026:\000\000\000\000\026>\b.\b:\000\000\000\000\000\000\bN\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\026B\000\000\017A\017A\000\000\026F\026J\br\003&\000\000\t^\000\000\b~\001\238\003.\000\000\000\000\017A\b\134\b\138\000\000\017A\b\142\017A\017A\000\000\000\000\tf\000\000\000\000\n>\000\000\000\000\017A\000\000\000\000\017A\000\000\017A\b\146\b\150\000\000\000\000\000\000\000\000\b\154\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\nJ\000\000\b\198\000\000\002\230\000\000\001\138\000\000\000\000\017\246\000\000\b\202\017\250\000\000\000\000\000\000\b\210\003r\000\000\000\000\017A\017A\000\000\017A\000\000\nN\000\000\017A\002\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nV\018f\018R\000\000\000\000\017A\019\174\000\000\000\000\017A\017A\003\026\000\000\003\030\000\000\000\000\017A\000\000\000\000\000\000\017A\017A\018j\003&\000\000\000\000\000\000\018n\001\238\003.\000\000\000\000\000\000\018r\018v\000\000\025\234\018z\000\000\000\000\000\000\000\000\000\000\000\000\025\234\000\000\000\000\000\000\025\238\000\000\000\000\000\000\000\000\000\000\b\146\018~\025\238\000\000\000\000\025\242\018\130\025\246\000\000\000\n\000\000\025\250\000\000\025\242\000\000\025\246\000\000\025\254\018\138\025\250\000\000\000\000\000\000\026\002\000\000\025\254\026\n\000\000\000\000\000\000\026\014\026\002\000\000\000\000\026\n\000\000\026\018\000\000\026\014\000\000\000\000\000\000\018\142\000\000\026\018\000\000\000\000\027v\018\150\000\000\000\000\000\000\026\022\000\000\000\000\028F\000\000\018\154\000\000\000\000\026\022\000\000\018\162\003r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\253\000\000\026\026\000\000\000\000\026\030\000\000\000\000\012\253\000\000\026\026\000\000\000\000\026\030\000\000\000\000\000\000\000\000\026\"\000\000\000\000\000\000\000\000\026&\000\n\026*\026\"\026.\0262\000\000\0266\026&\000\n\026*\000\000\026.\0262\026:\0266\000\000\026>\000\000\025\234\000\000\000\000\026:\000\000\000\000\026>\000\000\000\000\000\000\000\000\000\000\025\238\026B\000\000\000\000\000\000\000\000\026F\026J\012\253\026B\000\000\025\242\000\000\025\246\026F\026J\012\253\025\250\000\000\000\000\000\000\000\000\000\000\025\254\000\000\000\000\000\000\000\000\000\000\026\002\000\000\000\000\026\n\000\000\000\000\000\000\026\014\t\141\000\000\000\000\000\000\000\000\026\018\000\000\000\000\000\000\000\000\000\000\000\000\t\141\000\000\000\000\000\000\028\174\000\000\000\000\000\000\000\000\026\022\000\000\t\141\000\000\t\141\000\000\000\000\000\000\t\141\000\000\000\000\000\000\000\000\000\000\t\141\000\000\000\000\000\000\000\000\000\000\t\141\000\000\000\000\t\141\000\000\000\000\000\000\t\141\000\000\012\253\000\000\026\026\000\000\t\141\026\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\026\"\000\000\t\141\029\014\000\000\026&\000\n\026*\000\000\026.\0262\000\000\0266\000\000\000\000\000\000\000\000\000\000\000\000\026:\000\000\000\000\026>\000\000\000\000\000\000\000\000\000\000\b\017\000\000\000\000\000\000\000\000\t\141\000\000\000\000\t\141\026B\000\000\000\000\b\017\000\000\026F\026J\012\253\000\000\000\000\000\000\000\000\t\141\000\000\b\017\000\000\b\017\t\141\t\141\t\141\b\017\t\141\t\141\000\000\t\141\000\000\b\017\000\000\000\000\000\000\000\000\t\141\b\017\000\000\t\141\b\017\000\000\000\000\000\000\b\017\027Z\000\000\000\000\000\000\000\000\b\017\000\000\000\000\000\000\t\141\000\000\000\000\025\238\000\000\t\141\t\141\030\022\000\000\000\000\000\000\000\000\b\017\000\000\025\242\000\000\025\246\000\000\000\000\000\000\025\250\000\000\000\000\000\000\000\000\000\000\025\254\000\000\000\000\000\000\000\000\000\000\026\002\000\000\000\000\026\n\000\000\000\000\000\000\026\014\000\000\000\000\000\000\b\017\000\000\026\018\b\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\017\000\000\026\022\027r\000\000\b\017\b\017\b\017\000\000\b\017\b\017\000\000\b\017\000\000\000\000\025\238\000\000\000\000\000\000\b\017\000\000\000\000\b\017\000\000\000\000\000\000\025\242\000\000\025\246\000\000\000\000\000\000\025\250\026\026\000\000\000\000\026\030\b\017\025\254\000\000\000\000\000\000\b\017\b\017\026\002\000\000\000\000\026\n\000\000\026\"\000\000\026\014\025\234\000\000\026&\000\n\026*\026\018\026.\0262\000\000\0266\000\000\000\000\025\238\000\000\000\000\000\000\026:\000\000\000\000\026>\000\000\026\022\000\000\025\242\000\000\025\246\000\000\000\000\000\000\025\250\000\000\000\000\000\000\000\000\026B\025\254\000\000\000\000\000\000\026F\026J\026\002\000\000\000\000\026\n\000\000\000\000\000\000\026\014\000\000\000\000\000\000\026\026\000\000\026\018\026\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\026\"\000\000\028*\028B\000\000\026&\000\n\026*\000\000\026.\0262\000\000\0266\000\000\000\000\025\238\000\000\000\000\000\000\026:\000\000\000\000\026>\000\000\000\000\000\000\025\242\000\000\025\246\000\000\000\000\000\000\025\250\026\026\000\000\000\000\026\030\026B\025\254\000\000\000\000\000\000\026F\026J\026\002\000\000\000\000\026\n\000\000\026\"\000\000\026\014\028\170\000\000\026&\000\n\026*\026\018\026.\0262\000\000\0266\000\000\000\000\025\238\000\000\000\000\000\000\026:\000\000\000\000\026>\000\000\026\022\000\000\025\242\000\000\025\246\000\000\000\000\000\000\025\250\000\000\000\000\000\000\000\000\026B\025\254\000\000\000\000\000\000\026F\026J\026\002\000\000\000\000\026\n\000\000\000\000\000\000\026\014\000\000\000\000\000\000\026\026\000\000\026\018\026\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\026\"\000\000\026\022\025\234\000\000\026&\000\n\026*\000\000\026.\0262\000\000\0266\000\000\000\000\025\238\000\000\000\000\000\000\026:\000\000\000\000\026>\000\000\000\000\000\000\025\242\000\000\025\246\000\000\000\000\000\000\025\250\026\026\000\000\000\000\026\030\026B\025\254\000\000\000\000\000\000\026F\026J\026\002\000\000\000\000\026\n\000\000\026\"\000\000\026\014\025\234\000\000\026&\000\n\026*\026\018\026.\0262\000\000\0266\000\000\000\000\025\238\000\000\000\000\000\000\026:\000\000\000\000\026>\000\000\029\226\000\000\025\242\000\000\025\246\000\000\000\000\000\000\025\250\000\000\000\000\000\000\000\000\026B\025\254\000\000\000\000\000\000\026F\026J\000\000\000\000\000\000\026\n\000\000\000\000\000\000\026\014\000\000\000\000\000\000\026\026\000\000\026\018\026\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\026\"\000\000\026\022\000\000\000\000\026&\000\n\026*\000\000\026.\0262\000\000\0266\000\000\000\000\000\000\000\000\000\000\000\000\026:\000\000\000\000\026>\000\000\000\000\017Y\000\000\000\000\017Y\000\000\000\000\000\000\000\000\026\026\000\000\000\000\026\030\026B\000\000\000\000\000\000\000\000\026F\026J\000\000\000\000\000\000\000\000\000\000\026\"\000\000\017Y\017Y\000\000\026&\030\014\026*\000\000\026.\0262\000\000\0266\000\000\000\000\000\000\000\000\017Y\000\000\026:\000\000\017Y\026>\017Y\017Y\000\249\000\000\000\000\000\249\000\000\000\000\b*\000\000\017Y\000\000\000\000\017Y\026B\017Y\000\000\000\000\000\000\026F\026J\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\230\004\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\017Y\003\238\000\000\000\000\000\000\000\249\000\000\000\249\000\249\000\000\000\000\000\225\000\000\000\000\000\225\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\225\000\225\000\000\017Y\017Y\000\000\017Y\000\000\000\000\000\000\017Y\000\000\004\030\000\000\000\000\003\238\000\000\000\000\000\000\000\225\000\000\000\225\000\225\000\221\017Y\000\000\000\221\000\000\017Y\017Y\000\000\000\225\000\000\000\000\003\246\017Y\004\006\000\000\000\000\017Y\017Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\221\000\221\000\000\004&\000\000\000\000\000\249\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\225\003\238\000\000\000\000\000\000\000\221\000\000\000\221\000\221\000\000\000\249\000\000\000\000\000\000\000\249\000\249\000\000\000\221\000\000\000\000\003\246\000\000\004\006\000\000\000\000\000\249\004.\000\000\000\000\000\000\000\000\000\000\000\000\000\213\000\000\000\000\000\213\000\000\000\000\000\000\000\225\000\000\000\000\000\225\000\000\000\000\000\000\003\254\000\000\000\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\213\000\213\000\225\000\000\000\000\000\000\000\225\000\225\000\000\000\000\000\000\000\000\000\000\004v\000\000\000\213\001\001\000\225\000\225\000\213\000\000\000\213\000\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\221\000\213\000\000\000\221\003\246\000\000\000\213\003\254\000\000\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\221\000\000\000\000\003\238\000\221\000\221\000\000\001\001\000\000\001\001\004~\000\000\000\213\000\000\000\000\000\221\000\221\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004v\000\000\000\000\000\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\030\000\213\000\000\000\000\000\213\000\000\000\000\000\000\003\254\000\000\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\213\000\000\000\000\003\238\000\213\000\213\000\000\000\245\000\000\000\245\000\245\000\237\000\000\000\000\000\237\000\213\000\213\000\000\004&\004\022\000\000\001\001\003\246\000\000\004\006\003\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\230\004\014\001\001\000\000\000\000\000\000\001\001\001\001\000\000\000\000\000\000\000\000\000\000\000\000\004\030\003\238\000\000\004\134\004.\000\237\000\000\000\237\000\237\000\000\000\217\000\000\000\000\000\217\000\000\000\000\000\000\000\237\000\000\000\000\003\246\000\000\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\217\000\217\000\000\000\000\004&\000\000\000\000\000\245\000\000\000\000\000\000\003\254\000\000\004\030\000\000\000\217\000\000\000\000\000\000\000\217\000\229\000\217\000\217\000\229\000\000\000\245\000\000\000\000\000\000\000\245\000\245\000\217\000\000\000\000\003\246\000\000\000\217\000\000\000\000\000\000\000\245\004.\000\000\000\000\000\000\000\000\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\237\000\000\000\000\000\237\000\000\000\000\000\000\003\254\003\238\000\000\000\217\000\000\000\229\000\000\000\229\000\229\000\000\000\233\000\000\000\000\000\233\000\237\000\000\000\000\000\229\000\237\000\237\003\246\000\000\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\237\000\237\000\000\000\000\000\000\000\000\000\000\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\217\000\000\000\000\000\217\000\000\000\000\000\229\003\254\003\238\000\000\000\000\000\000\000\233\004v\000\233\000\233\000\253\000\000\000\000\000\000\000\000\000\217\000\000\000\000\000\233\000\217\000\217\003\246\000\000\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\217\000\217\000\000\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\229\000\000\000\000\000\229\000\000\000\000\000\000\003\254\003\238\000\000\004\030\000\000\000\253\000\000\000\253\004~\000\000\000\241\000\000\000\000\000\241\000\229\000\000\000\000\004\022\000\229\000\229\003\246\000\000\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\229\000\229\000\000\000\000\000\000\000\000\000\000\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\233\000\000\000\000\000\233\000\000\000\000\004\030\003\254\003\238\000\000\000\000\000\000\000\241\004v\000\241\000\241\000\000\000\177\000\000\000\000\000\000\000\233\000\000\000\000\004\022\000\233\000\233\003\246\000\000\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\233\000\233\000\000\003\230\004\014\000\000\000\000\003\230\004\014\000\000\004&\000\000\000\000\000\253\000\000\000\000\000\000\003\254\003\238\000\000\004\030\000\000\003\238\000\000\000\185\000\185\000\000\000\157\000\177\000\177\000\000\000\253\000\000\000\000\004\022\000\253\000\253\003\246\000\177\004\006\000\000\003\246\000\000\004\006\000\000\000\000\000\253\004.\000\000\000\000\000\000\000\000\000\169\000\157\000\157\000\000\000\000\000\000\000\000\000\000\004&\000\000\000\000\000\241\000\000\000\000\004\030\003\254\000\157\000\000\004\030\000\000\000\000\000\000\000\157\000\157\000\000\000\000\003\230\004\014\000\000\000\241\000\000\000\000\000\157\000\241\000\241\003\246\000\000\000\157\000\000\000\000\000\000\003\238\000\000\000\000\000\241\000\241\000\000\000\169\000\169\000\000\000\000\000\000\000\000\000\000\004&\000\000\000\000\000\169\000\177\000\000\003\246\003\254\004\006\000\000\000\157\003\254\000\173\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\177\000\000\000\000\000\185\000\000\000\000\000\000\000\177\000\000\000\000\000\169\000\185\004.\003\230\004\014\000\177\000\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\000\000\000\000\003\238\000\000\000\000\000\000\003\254\004v\000\173\000\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\173\000\000\000\157\003\246\000\000\004\006\000\169\000\000\000\000\000\157\000\000\000\000\000\000\003\254\000\181\003\230\004\014\000\157\000\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\169\000\000\000\000\003\238\000\000\004\030\000\000\000\169\000\000\000\193\004~\000\000\000\000\003\230\004\014\000\169\000\169\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\000\000\000\000\000\000\003\238\000\000\000\000\000\000\000\000\000\000\000\181\000\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\022\000\173\000\000\003\246\000\000\004\006\000\000\004\030\003\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\173\000\000\000\000\000\000\000\000\000\000\000\000\000\173\000\000\000\000\004\030\000\000\000\000\000\000\000\000\000\173\000\173\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\003\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\193\000\000\000\000\000\000\004&\000\000\000\000\000\193\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\193\004.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\181\000\000\000\000\000\000\000\000\000\000\000\000\000\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\181\000\181")) + ((16, "\002\130\000\151\000\000\000\000\021\244\000\151\000\000\000\000\000\015\000\000\000\000\000\000\001\015\000\000\000\000\000\000\002\130\000\000\000\0052\n\000\000\023\144\023\172\000\000\000\000BB\023\144\023\144\000\000\000\000P\"P\134\023\144\000\000\000\000\023\144\000\000\000\000\023\144\000\000\023\144\000\000\000\191\000\143\023\144\000\000\023\144\000\000\000\000\000\000\023\144\000\000\023\144\000\000C\026`\232\023\144\000\000\000\000X\172a(\023\144\000\000\000\000\023\144\000\000\000\000\023\144\000\000\023\144\000\000\000\159\000q\023\144\000\000\023\144\000\000a6\023\144\000\000\000\000\023\144\000\000Q\146aR\023\144\000\000\000\000\023\144\000\000\023\144\000\000\000\000\023\144\000\000\023\144\000\000\000\006\000\000\000\017\000\017\000\000\000\000\000\000\000\000\000\159\000\000\000\000\000#\000\017\000\000\000#\000\000\000\000\000\017\000\164\000\160\000\017\000r\000\000\000f\000R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000I\000\017\000\000\000\136\002\220\000\017\000\000\000\142\001f\000\000\000\000\000\000\000\208\023\144\000\000\023\144\000\017\000\232\023\144\000\000\000\000\023\144\000\000\000\000\023\144\000\000\023\144\000\000\0018\001\154\023\144\000\0002\nQ\1468D\000\0008D\000\000\000\000\000\000\000\017\000\0008D\000\0007(\002\2488D\003\014\000\000\000\017\007|N\250\000\000\000\000X\218Y\156\000\000\\\200\000\000Z4N\250\030\202\030\202\\\200N\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Z\204\030\202\000\000\000\000Z\204Z\204Z\204\000\000Z\204\000\006\000\000\000\000N\250Z\204\000\000\000\000'\230\000\017\000\000\025.\030\202N\250\000\000)6N\2504\238N\2505\012N\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000C\132N\250\000\000D\160N\2506(N\2507DN\250\000\000N\250\000\000N\2508`N\2509|N\250:\152N\250;\180N\250<\208N\250=\236N\250\027\172N\250\000\000\000\000\000\000\002\240N\250\000\000\000\000\000\000\000\000N\250E(N\250FDN\250F\204N\250G\232N\250?\bN\250@$N\250A@N\250HpN\250I\140N\250\000\000N\250J\020N\250K0N\250K\184N\250\000\000N\250L\212N\250M\\N\250\000\000\000\000N\250\000\000\002\206\000\000\000\000\000\017\000\000\000\000\000\000\003\006\000\000\003\b\000\000\000\020N\250\000\000\000\020\000\000\000\000\000b2\n\000\000\027\144\023\144\000\000\0032ax\023\144\000\000\000\000[\162a\142\023\144\000\000\000\000\023\144\000\000\000\000\023\144\000\000\023\144\000\000\003\148\0048\023\144\000\000\023\144\000\000\023\144\000\000\023\144\000\000\005\144a\146\023\144\000\000\000\000[\202a\184\023\144\000\000\000\000\023\144\000\000\000\000\023\144\000\000\023\144\000\000\004\024\004\134\023\144\000\000\023\144\000\000a\252\023\144\000\000\000\000\023\144\000\000RZb8\023\144\000\000\000\000\023\144\000\000\023\144\000\000\000\000\023\144\000\000\023\144\000\000\007\212\000\017\004N\023\144\000\000X\172\000\017\004T\023\144\000\000\000\000\023\144\000\000\023\144\000\000\023\144\000\000\004\250\0058\023\144\000\000[\2028D\000\000\000\000\005*\023\144\000\0008D\000\000\000\000<\180:|\000\000\001f\006$\000\017\005r\006R=\208=\208\000\000\000\000\000\000\000\195L\184=\208\001X@\b\000\000\000\000\000\000\006h\006D\002\162\006r=\208\000\000\000\000\005\192\000\000\005\198\006\164=\208\005\216\000\000\000+\000\000\007|\000\000\000\000\002\004F(\000\000\000\000\000\000\006>\007D\000\000\007R\000\000*\182\001f8D\006`\023\144\000\000`\2328D\006l\023\144\000\000\000\000\000\000\000\017\007b\000\000\000\000\000\000\000b\000\000\000\000\030\202\006~\000\000\006\136\\\200.<\000\000]X\030\202\006\140\000\000\006\146-\n.\000\000\001p\000\000\019\152-\188\023\172\000\000\007\166\023\186\023\172\000\000\000\000O\202R\026\023\172\000\000\000\000\023\172\000\000\000\000\023\172\000\000\023\172\000\000\007\130\007\178\023\172\000\000\023\172\000\000\023\172\000\000\023\172\000\000\b\208R\160\023\172\000\000\000\000O\244T\016\023\172\000\000\000\000\023\172\000\000\000\000\023\172\000\000\023\172\000\000\007\136\007\186\023\172\000\000\023\172\000\000T(\023\172\000\000\000\000\023\172\000\000\023\172T8\023\172\000\000\000\000\023\172\000\000\023\172\000\000\000\000\023\172\000\000\023\172\000\000\007\226\000\017\007b\023\172\000\000\023\172\000\017\007h\023\172\000\000\000\000\023\172\000\000\023\172\000\000\023\172\000\000\007\154\007\204\023\172\000\0002\n\000\000\007\140\000\000\002n2\n\000\000\000\000\002n\000\000\000\000\023\1868D\007\134\023\172\000\000\000\000\000\000\000\026\000\000\000\000\000\031\000\026\000\000\000\000\000\000\b\128\000\000\007\1848D\007\186\023\172\000\000 :8D\007\208\023\172\000\000\000\000\031\172\023\172\000\000\t:T\164\023\172\000\000\000\000PfT\188\023\172\000\000\000\000\023\172\000\000\000\000\023\172\000\000\023\172\000\000\b\b\b6\023\172\000\000\023\172\000\000\023\172\000\000\023\172\000\000\011\212T\202\023\172\000\000\000\000PlT\226\023\172\000\000\000\000\023\172\000\000\000\000\023\172\000\000\023\172\000\000\b\012\b:\023\172\000\000\023\172\000\000T\252\023\172\000\000\000\000\023\172\000\000NZU\022\023\172\000\000\000\000\023\172\000\000\023\172\000\000\000\000\023\172\000\000\023\172\000\000\t\018\000\017\007\228\023\172\000\000NZ\000\017\007\238\023\172\000\000\000\000\023\172\000\000\023\172\000\000\023\172\000\000\b\030\bN\023\172\000\000O\2028D\b\000\023\172\000\000\000\000\nr8D\b\004\023\172\000\000O\2448D\b\006\023\172\000\000\000\000\000\000\000\000\000\000\000\000\b\220N\250\b\020\"$\b\150\000\000\b\232N\250\b\"\b\2362\n\000\000\000\000\000\0002\n\000\017\000\000\003\000N\250\t\024\000\000\000\017\000\000\001<\t\026\000\000\t.\b\236\000\017\b2\t\002=\208\b6\001\154\000\000N\250\t&\000\000\000\000\000\000\t\012=\208\bF\t6\000\000\003\186\004>N\250\t8\000\000\t>\000\000*\182\000\017\004lN\250\tP\000\000\tX\000\000\000\017\004vN\250\tZ\000\000\tb\000\000\0013\b\160\t\n%:\000\000^\192\030\202\b\134Qd\000\000U\246\000\000\t\128\000\000\003\002\tZN\250\t\024\000\000\tbN\250\t6\000\000\001p\000\000\t\n\t\n\030\202\b\188\000\000\b\194n\154n\154\000\000\000\000\000\000\000\000\000\000\000\000Z\204\000\000\000\000Z\204\000\000\000\000Z\204\000\000\000\006\000\000n\154\000\000\000\0003B\000\017\000\000\025.\b\196\000\000N\250\b\198\000\000\000\000\000\017\000\000\000\000\000\000\000\000\000\000VzN\250\000\000N\250\000\000\b\206\000\000\000\020\000\000\000\000\000\000\000\000\000\000c2N\250c\154N\250\b\248N\250\000\000N\250d\182N\250e\030N\250f:N\250f\162N\250g\190N\250h&N\250\000\000N\250iBN\250i\170N\250j\198N\250\000\000N\250k.N\250lJ.<\b\202\000\000\000\000\003\002\000\000\003\002\000\000\019\152\t\n\t\n\000\000\000\000\000\000\000\003\000\000\000\000\000\000\t\160N\250\b\212\"$#6\000\017\t\196\000\000\t\166W>\t\202W>\t\206N\250\b\226\"$\"$\001\022\001\022\004\012\001\226\001\022\000\000\000\000\004\018\004\026\000\000\004\028\n\"\000\000\000\000\000\000\000\000\000\000\b\230\000\000\000\000\t\216\000\000\t\226\000\000\000\000\n\"\t\200N\250\b\254\t\238\000\000\t\240\000\000\t4\000\000\t\218\025.\t\014\"$\000\000\000\000\000\000\007\136\000\000\000\000\003\002\000\000\t\150\000\000\015\018\0012\000\000\015\018\000\000\000\000&d\000\000\011\182\000\000\000\000\012\014\000\000\015\018\000\000\t\236\025.\tB\001\166\000\000N\250\n4\000\000\0032\000\000\n\018\000\017\tZ\n*=\208\tb\003\132\000\000N\250\nT\000\000\n6=\208\tl\n^\000\000\004\128N\250\nb\000\000\nd\000\000*\182\000\017\004\140N\250\nf\000\000\nj\000\000\000\000\000\000\012\014\000\000\000\000\006\016\000\000\t\n\000\000\0032\000\000\000\000\005\b#6\000\000\005\b\000\000\000\000\t\132\000\000\000\020\001\128\"$\000\000\006\006\0007\006\006\000\000\0007\000\000\t\n\000\000\t\n\000\000\000\000\000\000\t\128\000\000\000\000\t\144\000\000\0050\007\136\0007\006\006\000\000\000\000\000\000\0007\000\000\t\n\000\000\0050\000\000\000\000\029\232\n\130\019\152\000\000\020R\000\000\n\140\019\152\000\000\000\000\n\140\000\000\000\000\t\142\000\000\000\000\t\156\000\000\005@\t\n\000\000\005@\000\000\000\000\n\030\000\000\006\016\000\000\t\n\000\000\000\000\000\000\022\152W\214\000\000\n\146\000\000\022\152\000\000\n\156\000\000\n\162\000\0002\n\000\017\004H\000\000N\250\n\164\000\000\0122\nv\000\017\t\192\n\146=\208\t\200\005<\000\000N\250\n\184\000\000\005b\000\000N\250\n\186\000\000*\182\000\017\005|\000\000N\250\n\192\000\000\005\146\022\152\000\000\000\017\005\196\000\000N\250\n\196\000\000&d\n\206\000\000\000\000\000\000\n\176\025.\t\228\005\198\000\000N\250\n\220\000\000\007\184\000\000\n\180\000\017\t\250\n\214=\208\n\n\005\206\000\000N\250\n\250\000\000\005\248\000\000N\250\011\000\000\000*\182\000\017\006\004\000\000N\250\011\002\000\000\005\146\000\000\000\000\n\024\000\000$\154\n\150\000\000\000\000\000\000\n\154\000\000\000\165\001p\000\000\019\152\n\250\000\000\000\000N\250\nV\t\n\000\000\n0\000\000\0013\000\0002\n\000\000\000\000\001\182\019\152\000\000\019\152\000\000\n \000\000\001\182\000\000N\250\003\236N\250\000\000N\250\000\000\n&\000\000\003\236\000\000N\250\003\236\n(\000\000\021\024$\182\000\000\005\216\021\024\000\000\000\000\021\024\000\000\n*\000\000\005\216\000\000N\250\003\236\n4\000\0002\n\005\2202\n\000\0002\n\000\000\n>\000\000\005\220\000\000N\250\003\236\nB\000\000\000\000 J\000\000\000\151\n\226\000\000\000\000\n\184_\156\000\000\000\000\000\000\000\000\000\000\000\000\n\140\006\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002v_\156\000\000\001\b\003P\n\144\000\151\000\000\000\000\n\154\000\151\000\000\000\000\000\000\000\000\002\222\003P\000\000\000\000\000\000\000\000\n\250\000\000\000\000\000\000\000\000'\230*6\000\000[\168\000\000_\156\000\000\004@_\156\000\000\002\196\001H\001H\000\000\005\024\001H\000\000\nr\000\000\000\000\000\000\000\000\011\000\000\000+\148\000\000-\188_\156\000\000\003\224_\156\000\000\011\004\000\000_\156\011\014\000\000q\248`\030\011\020\000\000\011\022\000\000r\134oZ_\156\000\000\000\000\n\146_\156\011$\000\000\011H\000\000\011\\\000\0002\n\000\000\005\1502\n\000\000\n\216\023\148\000\000_\156\011d\000\000\003\020_\156\000\000\004\154_\156\000\000\004\132\011\236\000\000\011\238\000\000`\030_\156\n\226\000\000\000\000\000\000\000\000\000\000\000\000\011r\000\000r\232_\156\011v\000\000\011~\000\000svoj_\156\n\250_\156\011\136\000\000\011\140\000\000\011\142\000\000_\156\0118\000\151\000\000\000\000\006`_\156\000\000\004\132\000\000\011\150\000\000_\156\011\152\000\000s\216pt_\156\011\020_\156\011\160\000\000\011\162\000\000\011\170\000\000l\236\023\148\000\000\023\148\000\000`\030_\156\011$_\156\011\174\000\000\011\178\000\000\023\148\000\000p\214\000\000\000\000\006j_\156\000\000\001\128\001\218\001H\011.\000\000\000\000\001\212\001\212\000\000\000\000\000\000\000\000\005\216\001\212\000\000\0110\000\000\000\000\000\000\000\000\000\000\000\000\000\000_\156\000\000\006\158_\156\000\000\006\006\002\220\000\151\0114\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\192\000\000\011\206\000\000_\156\011\208\000\000tf_\156\011\210\000\000\011\212\000\000_\156\011\216\000\000!\174\011\128t\200NZq\150\011V\000\000_\156\011\234\000\000\011\242\000\000\011\194!\174_\156\011\252\000\000_\156\011\254\000\000\012\000\000\000_\156\012\016\000\000\000\151\011\130\000\000\000\000 J\000\000\000\000\0044\012|\000\000\000\000\001C\000\000\000\000\000\000N\250\000\000\000\000\000\000\004\132\000\000\000J\000\000\000\000\000\000\006\0062\n2\n2\n\000\000\003`\003`\003`\003`\000\000\000\000\000\000\000\000\000\000\000\000\003\002\019\152\012v\016\148\0012\000\000\000\000\004P\000\000\012\014\000\000.<\011\152\000\000\003\002\019\152\011\158\018\022\000\000\003\002\016\148\000\000\000\000\000\0002\n\025\140\000\000\000\000\000\000\011\236\0032\012rG\204G\204\000\000\004\136dPG\204\006xIp\000\000\000\000\b\170\012b\000\017\000\000\006\138K\020\000\000\000\000\000\000\000\000\000\000\011\174\012~\t\n\011\182\000\000\000\000\004P\000\000\012\014\000\000\021r\004\156\000\000\000\000\012l\000\000\000\000\0044\000\000\002\030\000\000\000\000\000\000N\250\000\000\004\132\000\000\003N\000\000\000\000\000\000\007\136\000\000\r\144\005L\r\144\000\000\t\n\r\144\000\000\005\246\000\000\t\n\000\000\t\n\000\000\t\n\000\000\019\242\000\000\000\000\000\000\000\000\000\000\t\n\000\000\005\246\000\000\t\n\000\000#\144\000\000\000\000\n\140\011\236\000\151\000\151\012\150\001h\000\000\001h\012\198\000\000\012\202\000\000\004\b\000\000\001h\002\196\001h\0110\001h\000\000\000\000\003\170\000\000\0144\000\151\011\194\000\000\011\196\000\000\012\002\000\151\000\151\011\200\000\000\n\140\012\216\000\000\014\234\012\254\012\236\000\225\012\236\000\000\000\000\b\214\000\151\000\000\001D\000\000\000\000\000\007\000\000\011\212\000\000\000\000\000\000\012\020\000\151\000\151\011\218\000\000\000\000\n\140\014\234\012\254\b\214\001D\000\007\011\220\000\000\014\234\012\254\b\214\001D\000\007\011\226\000\000\005T\000\026\012\000\000\151\011\250\007\b\006J\012&\000\151\000\000\012*\000\151\000\000\012\136\000\000\012\014\003B\012\n\007\b\012\144\000\000\012\014\007\b\012\148\000\000\000\000\007\b\000\000\012\150\000\000"), (16, "\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\018\n\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\025\006\007\213\030\219\030\223\014\165\007E\002\186\030\227\014\025\n\249\014!\014\165\001\138\014\165\014\025\014\025\000&\014\165\018>\014\165\014\165\014\137\014\165\001\138\"V\014\165\014\025\019\222\0007\000;\014\165\014\165\014\165\002\162\002\226\014\165\000*\006)\000\n!\190\000\174\014\165\000\178\001\146\014\165\014\165\n\249\001\182\002\190\001\202\014\165\014\165\014\025\014\165\007\"\014\165\001\"\001&\nE\001\142\014\165\001\138\014\165\014\165!*\014\165\014\165\014\165\bb\024\238\001\150\014\165\014\165\014\165\005*\001\170\014\165\014\165\014\165\014\222\001\154\001\238\014\165\014\165\014\165\014\165\014\165\014\165\012\018\004\253\001\210\014\165\014\165\000N\r\022\025V\025~\025\142\025\194\025\210\025\250\014\226\014\165\014\165\014\165\000\n\021\014\014\165\014\165\014\165\014\165\007\213\014\165\005B\014\165\002\026\000\n\014\165\001\234\001\238\014\165\014\165\t\225!\230\001\242\001\206\000\n\006)\001\246\001\250\007=\014\165\014\165\b\213\007=\014\165\014\234\007\149\001\214\014\165\014\165\014\165\014\165\005\133\007U\014\165\001\254\014\165\b\198\001\222\t\229\014\165\014\165\014\165\000\n\014\165\b\186\014\165\014\165\001\138\014\165\006\205\014\165\014\165\007\157\014\165\014\165\014\165\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\001\230\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\002\186\0141\026F\020^\014\177\018>\001\138\031\003\031\007\005\133\007\141\014\177\031\011\014\177\019\222\018f\005\133\014\177!2\014\177\014\177\029n\014\177\012\246\001\150\014\177\002&\0276\r}\0026\014\177\014\177\014\177\t\241\001\154\014\177\002m\001\146\006\250!6\0059\014\177\007\186\001\202\014\177\014\177!:\0059\017\130\018j\014\177\014\177\015q\014\177\021j\014\177\bj\029\130\0256\000\n\014\177\001\138\014\177\014\177\001\150\014\177\014\177\014\177\001\138\002J\026\174\014\177\014\177\014\177\001\154\026F\014\177\014\177\014\177\020b\bv\002^\014\177\014\177\014\177\014\177\014\177\014\177\n\253!\218\r}\014\177\014\177\021\014\012\254\005\173!\222\029\134\002\138\000\n\029r\005a\014\177\014\177\014\177\020j\005A\014\177\014\177\014\177\014\177\023N\014\177\005A\014\177!B\017N\014\177\023R\001\206\014\177\014\177\023V\015q\015q\002\142\001\150\012\194\015q\025>\007.\022R\014\177\005\173\n5\014\177\001\154\000\006\000\"\014\177\014\177\014\177\014\177\017\134\002q\014\177\029\138\014\177!J\021n\n\253\014\177\014\177\014\177\000\n\014\177\024\218\014\177\014\177\007e\014\177\000\n\014\177\014\177\001\138\014\177\014\177\014\177\007\221\007\221\007\221\007\221\007\221\007\221\007\221\007\221\007\221\007\221\007\221\007\221\007\221\007\221\014\166\007\221\007\221\007\221\007\221\007\221\007\221\007\221\007\221\007\221\007\221\001\138\007\133\001\146\006\250\007\221\018B\018R\018b\005\017\005Z\t\217\007\221\005j\007\221\005\138\005B!Z\007\221\014y\007\221\007\221\005\146\007\221\007\142\007\205\007\221\0272\002\157\016\234\001\150\007\221\001\146\007\221\016\238\0141\007\221\029\226\002*\031&\001\154\016\242\007\221\"\146\001\138\000.\016\246\031*\026\178 o s\007\221\007\221\002\206 w\005\154\007\221\007\221\b\r\001\150\021~\007\221\026\190\007\221\007\221\000\n\007\221\007\221\007\221\001\154\026\194\014\145\007\221\007\221\007\221\001\146\021\130\007\221\007\221\007\221\007\181\026\162\011b\007\221\007\221\007\221\007\221\007\221\007\221\t\253\005\170\t:\007\221\007\221\000\n\t\185\005\017\017\146\002\214\007]\007]\021\158\001\150\017\150\007\221\007\221\007\141\007J\007\221\007\221\007\221\007\221\001\154\007\221\011\250\007\221\022\"\026\206\007\221\005\017\b\r\007\221\007\221\n\225!j\004R\028\022\026\210\007=\026\222\017B\004\254!Z\014\145\nF!b\007\221\000\n\t\169\t\245\007\221\007\221\007\221\007\221\005\213\000\n\007\221\002\226\007\221\025^\017N\nz\007\221\007\221\007\221\002M\005\026\005\"\007\221\007\221\001\138\007\221!N\007\221\007\221\005\245\007\221\007\221\007\221\007\253\007\253\007\253\007\253\007\253\007\253\007\253\007\253\007\253\007\253\007\253\007\253\007\253\007\253!R\007\253\007\253\007\253\007\253\007\253\007\253\007\253\007\253\007\253\007\253\0141\007\253\021\162\020^\007\253\023\142\014Q \143 \147\n\249\007\253\007\253 \151\007\253\005\158\028.\0286\007\253\018>\007\253\007\253\030\202\007\253\0141\001\150\007\253\025f\019\222\0141\007=\007\253\007\253\007\253\0141\001\154\007\253\007\253\007\253\007\253\0141 O\007\253\007\253\007\253\007\253!r\007\253\007\253 S\007=\007\253\007\253\007\253\007\253\014\129\007\253!b\028> V\000\n\007\253\030\202\007\253\011n\007\253\007\253\007\253\007\253\027~\007\253\n\r\007\253\007\253\007\253\005\162\014Q\007\253\007\253\007\253\020b\006\n\007\253\007\253\007\253\007\253\007\253\007\253\007\253\011\r\011~\020f\007u\007\253\020z\t\213\017\182\002}\t\197\020\134\014i\023\146\t\201\002]\007\253\007\253\007\253\021\014\007\253\007\253\007\253\007\253\007\253\007\253\006\014\007\253\017N\027&\007\253\017\214\005\198\007\253\007\253\005\214\017\242\005\246\007\253\007\253\023\190\021\198\022.\006z\005\254\007\253\006\142\021\230\007\253\015q\015q\017N\007\253\007\253\015q\007\253\017N\018>\007\253\023\210\007\253\017N\022\162\011\r\007\253\031\218\019\222\017N\"R\n)\023\"\007\253\023\238\007\253\028\"\007\253\007\253\006\006\007\253\007\253\007\253\000R\000V\000f\000\194\r\026\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\026.\001v\031\018\001~\016\242\001\134\002j\002r\002v\016\246\031\022\006\182\0262\024\018\024F\016\250\024\002\006\022\024z\025\158\006\186\025\218\017\n\0266\002~\026:\028.\0286\002\230\026>\018\018\017\018\029n\018\022\000\n\026B\018\026\007\197\n\249\024\142\023\194\002\134\027B\018.\026N\024\170\n\245\018>\026R\014A\021\014\n\249\002\246\"j\026V\031J\019\222\007\165\006\214\023\214\018>\019\242\018r\031v\031\130\007\173\019\246\022^\029\222\019\222\026Z\003\026\023\242\003\030\006\005\"v\002\154\021\006\019\254\001\138\011)\011)\018\138\003&\020\002\011)\006\254\018\142\b\146\003.\025\170\007\006\025\226\018\146\018\150\017&\017*\018\154\020\006\011\005\007\n\026^\007F\020\n\026b\027\242\007\189\015q\024\022\024J\001\146\007B\014)\024~\b\162\018\158\007N\026f\020\014\020\018\018\162\020\022\026j\000\n\026n\020*\026r\026v\005\225\026z\007^\0206\018\170\007f\024\146\021\014\026~\001\150\029\158\026\130\024\174\007j\007r\031\150\014q\0149\020V\001\154\021\014\014Y\020Z\020\166\006\005\017.\026\134\007}\018\174\007m\020\170\026\138\026\142\011\005\018\182\006\005\006\005\011)\011)\"f\006\005\020\178\011)\018\186\000\n\b\005\b\005\014a\018\194\003r\b\005\000R\000V\000f\000\194\r\026\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\007\162\001v\031\018\001~\016\242\001\134\002j\002r\002v\016\246\031\022\r*\007\166\028\198\r:\016\250\rZ\0049\029b\007\174\007\194\0049\017\n\rb\002~\031\230\007\214\007\238\002\230\n\025\018\018\017\018\b\014\018\022 \006\"\187\018\026\b\022\002\141\b.\007=\002\134\b6\018.\029\210\bF\n\245\bR\002\186\bZ\br\b\190\002\246\t\162\001\138\018>\rj\t\210\nV\002\226\n\138\019\242\018r\031v\019\222\n\150\019\246\022\166\001\138\n\194\024Z\003\026\n\202\003\030\006\021\001\138\002\154\021\006\019\254\011Z\011\150\011\166\018\138\003&\020\002\001\146\024^\018\142\b\146\003.\015\006\rz\011\174\018\146\018\150\017&\017*\018\154\020\006\011\186\011\198\011\210\021\n\020\n\006r\011\238\b:\017\146\012\n\012\026\012\"\014B\001\150\017\150\b\162\018\158\012>\012F\020\014\020\018\018\162\020\022\001\154\000\n\012V\020*\001\238\012b\005\225\012n\012~\0206\018\170\001\238\012\138\007=\012\150\012\158\012\178\012\218\012\230\r\011\rn\021\014\rr\r\218\020V\000\n\r\222\014J\020Z\020\166\014^\017.\014\134\007=\018\174\014\138\020\170\007=\r\150\000\n\018\182\r\166\006\021\r\198\014\158\014\202\000\n\020\178\014\254\018\186\r\206\b\021\b\021\001\138\018\194\003r\b\021\000R\000V\000f\000\194\r\026\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\015\014\001v\031\018\001~\016\242\001\134\002j\002r\002v\016\246\031\022\015\"\r\214\001\146\031\246\016\250\015\130\015\134\015\238\015\242\015>\016^\017\n\015N\002~\015n\016r\016\154\002\230\016\158\018\018\017\018\015v\018\022\001\138\016\178\018\026\016\202\016\222\016\254\001\150\002\134\017\006\018.\017\014\017\022\n\245\r\230\001\138\017\030\001\154\017\"\002\246\017J\017^\018>\017j\017r\017v\017~\017\142\018n\018r\017\158\019\222\015~\019\246\017\166\017\170\017\190\016V\003\026\017\198\003\030\0061\000\n\002\154\019\250\019\254\001\146\017f\017\222\018\138\003&\020\002\017\230\017\250\018\142\b\146\003.\018\002\018\014\001\238\018\146\018\150\017&\017*\018\154\020\006\018&\015\142\017\146\015y\020\n\007\245\018:\001\150\017\150\018F\018N\007\245\007\245\018V\0049\b\162\018\158\001\154\0049\020\014\020\018\018\162\020\022!\206\000\n\018^\020*\018z\000\n\005\225\018\130\018\234\0206\018\170\018\246\019.\019^\019\214\020\026\020\"\0202\020:\000\n\020B\021\014\020J\020R\020V\020\162\007\245\020\174\020Z\020\166\0061\017.\020\182\020\194\018\174\020\198\020\170\020\206\020\210\020\218\018\182\0061\0061\020\226\020\234\020\242\0061\020\178\001\138\018\186\021\026\0111\0111\021^\018\194\003r\0111\000R\000V\000f\000\194\r\026\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\021f\001v\021v\001~\016\242\001\134\002j\002r\002v\016\246\021\134\002\186\021\142\021\146\020^\016\250\021\154\001\138\021\170\021\178\005\201\021\186\017\n\021\190\002~\021\206\021\214\021\238\002\230\021\246\018\018\017\018\022F\018\022\022\142\001\150\018\026\tm\022\154\023\014!\030\002\134\tu\018.\023\026\001\154\n\245\023:\001\146\023f\018>\tm\002\246\016\194\023v\018>\tu\023~\023\154\019\222\023\166\018n\018r\023\174\019\222\023\178\019\246\023\186\023\202\023\222\000\n\003\026\023\250\003\030\024\030\001\150\002\154\019\250\019\254\024*\024:\024B\018\138\003&\020\002\001\154\024R\018\142\b\146\003.\020b\024b\024j\018\146\018\150\017&\017*\018\154\020\006\024n\024v\024\134\004\245\020\n\024\154\024\182\024\202\024\214\tm\024\230\000\n\024\254\002a\tu\b\162\018\158!\142\025\014\020\014\020\018\018\162\020\022\025\026\000\n\025K\020*!\162\025s\025\139\025\183\005\201\0206\018\170!\250\025\207!\166\005\201\005\201\021\014\025\239\004\245\026\007\026\031\021\014\026*\026J\020V\026\182\005\201\005\201\020Z\020\166\026\198\017.\026\247\027N\018\174\027c\020\170\027\139\015\170\tm\018\182\015\186\027\151\015\218\tu\027\167\027\175\020\178\027\202\018\186\015\226\tm\005\201\027\211\018\194\003r\tu\000R\000V\000f\000\194\r\026\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\027\219\001v\n\249\001~\016\242\001\134\002j\002r\002v\016\246\027\227\018>\015\234\027\254\028\015\016\250\0282\028:\028J\004\245\019\222\028g\017\n\028w\002~\004\245\004\245\028\127\002\230\028\146\018\018\017\018\028\155\018\022\028\163\028\171\018\026\004\245\028\182\028\219\028\231\002\134\028\250\018.\029\003\029\011\n\245\015\250\001\138\029\019\0296\029?\002\246\029G\004\245\018>\029z\029\170\015q\029\234\030\011\018n\018r\004\245\019\222!b\019\246\030\019\030\031\030/\0307\003\026\030C\003\030\030N\030^\002\154\019\250\019\254\001\146\023\162\030k\018\138\003&\020\002\030s\030z\018\142\b\146\003.\030\135\030\147\030\155\018\146\018\150\017&\017*\018\154\020\006\021\014\030\167\017\146\015y\020\n\030\179\030\206\001\150\017\150\031V\031~\031\142\031\194\031\202\031\250\b\162\018\158\001\154 \"\020\014\020\018\018\162\020\022 &\000\n .\020* [!\"!.\015q\015q\0206\018\170!>\015q!F!\131!\139!\146!\159!\182\000\n!\170\021\014!\186!\239\020V!\254\"\011\"/\020Z\020\166\"K\017.\"Z\"b\018\174\"n\020\170\"z\"\135\"\142\018\182\"\150\"\159\"\166\"\175\"\195\000\000\020\178\000\000\018\186\000\000\015y\015y\000\000\018\194\003r\015y\000R\000V\000f\000\194\r\026\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\000\000\001v\031\018\001~\016\242\001\134\002j\002r\002v\016\246\031\022\000\000\000\000\000\000\000\000\016\250\000\000\000\000\000\000\000\000\000\000\000\000\017\n\000\000\002~\000\000\000\000\000\000\002\230\000\000\018\018\017\018\000\000\018\022\000\000\000\000\018\026\000\000\000\000\000\000\000\000\002\134\000\000\018.\000\000\000\000\n\245\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\007\237\000\000\000\000\000\000\019\242\018r\007\237\007\237\000\000\019\246 \166\000\000\000\000\000\000\003\026\000\000\003\030\000\000\007\237\002\154\021\006\019\254\000\000\000\000\000\000\018\138\003&\020\002\000\000\000\000\018\142\b\146\003.\000\000\000\000\000\000\018\146\018\150\017&\017*\018\154\020\006\000\000\000\000\007\237\005\001\020\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\162\018\158\000\000\000\000\020\014\020\018\018\162\020\022\000\000\000\n\000\000\020*\000\000\000\000\005\225\000\000\000\000\0206\018\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000!Z\000\000\000\000\000\000\000\000\000\000\020V\000\000\000\000\000\000\020Z\020\166\000\000\017.\000\000\000\000\018\174\000\000\020\170\000\000\000\000\000\000\018\182\000\000\000\000\000\000\000\000\000\000\000\000\020\178\000\000\018\186\000\000\011\021\011\021\000\000\018\194\003r\011\021\000R\000V\000f\000\194\r\026\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\004\253\001v\000\000\001~\016\242\001\134\002j\002r\002v\016\246\000\000\000\000\000\000\000\000\000\000\016\250\000\000\000\000\000\000\005\001\000\000\000\000\017\n\000\000\002~\005\001\005\001\000\000\002\230\000\000\018\018\017\018\000\000\018\022\000\000\000\000\018\026\005\001\000\000\000\000\000\000\002\134\000\000\018.\000\000\000\000\n\245\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\242\018r\005\001\000\000!b\019\246\021\"\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\021\006\019\254\000\000\000\000\000\000\018\138\003&\020\002\000\000\000\000\018\142\b\146\003.\000\000\000\000\000\000\018\146\018\150\017&\017*\018\154\020\006\000\000\000\000\000\000\015U\020\n\000\000\000\000\000\000\000\000\000\000\000\000\004\253\000\000\000\000\000\000\b\162\018\158\004\253\004\253\020\014\020\018\018\162\020\022\000\000\000\n\000\000\020*\000\000\000\000\004\253!*\000\000\0206\018\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\020V\000\000\000\000\000\000\020Z\020\166\000\000\017.\004\253\000\000\018\174\000\000\020\170\000\000\000\000\000\000\018\182\000\000\000\000\000\000\000\000\000\000\000\000\020\178\000\000\018\186\000\000\015U\015U\000\000\018\194\003r\015U\000R\000V\000f\000\194\r\026\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\000\000\001v\000\000\001~\016\242\001\134\002j\002r\002v\016\246\000\000\000\000\000\000\000\000\000\000\016\250\000\000\000\000\000\000\000\000\000\000\000\000\017\n\000\000\002~\000\000\000\000\000\000\002\230\000\000\018\018\017\018\000\000\018\022\000\000\000\000\018\026\000\000\000\000\000\000\000\000\002\134\000\000\018.\000\000\000\000\n\245\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\242\018r\000\000\000\000\000\000\019\246\031Z\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\021\006\019\254\000\000\000\000\000\000\018\138\003&\020\002\000\000\000\000\018\142\b\146\003.\000\000\000\000\000\000\018\146\018\150\017&\017*\018\154\020\006\000\000\000\000\000\000\000\000\020\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\162\018\158\000\000\000\000\020\014\020\018\018\162\020\022\000\000\000\n\000\000\020*\000\000\000\000\000\000\000\000\000\000\0206\018\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\020V\000\000\000\000\000\000\020Z\020\166\000\000\017.\000\000\000\000\018\174\000\000\020\170\000\000\000\000\000\000\018\182\000\000\000\000\000\000\000\000\000\000\000\000\020\178\000\000\018\186\000\000\015\161\015\161\000\000\018\194\003r\015\161\000R\000V\000f\000\194\r\026\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\000\000\001v\000\000\001~\016\242\001\134\002j\002r\002v\016\246\000\000\000\000\000\000\000\000\000\000\016\250\000\000\000\000\000\000\000\000\000\000\000\000\017\n\000\000\002~\000\000\000\000\000\000\002\230\000\000\018\018\017\018\000\000\018\022\000\000\000\000\018\026\000\000\000\000\000\000\000\000\002\134\000\000\018.\000\000\000\000\n\245\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\242\018r\000\000\000\000\000\000\019\246\031Z\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\021\006\019\254\000\000\000\000\000\000\018\138\003&\020\002\000\000\000\000\018\142\b\146\003.\000\000\000\000\000\000\018\146\018\150\017&\017*\018\154\020\006\000\000\000\000\000\000\000\000\020\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\162\018\158\000\000\000\000\020\014\020\018\018\162\020\022\000\000\000\n\000\000\020*\000\000\000\000\000\000\000\000\000\000\0206\018\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\020V\000\000\000\000\000\000\020Z\020\166\000\000\017.\000\000\000\000\018\174\000\000\020\170\000\000\000\000\000\000\018\182\000\000\000\000\000\000\000\000\000\000\000\000\020\178\000\000\018\186\000\000\015\157\015\157\000\000\018\194\003r\015\157\000R\000V\000f\000\194\r\026\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\000\000\001v\000\000\001~\016\242\001\134\002j\002r\002v\016\246\000\000\000\000\000\000\000\000\000\000\016\250\000\000\000\000\000\000\000\000\000\000\000\000\017\n\000\000\002~\000\000\000\000\000\000\002\230\000\000\018\018\017\018\000\000\018\022\000\000\000\000\018\026\016\234\000\000\000\000\000\000\002\134\016\238\018.\000\000\000\000\n\245\031&\000\000\016\242\000\000\000\000\002\246\000\000\016\246\031*\000\000\000\000\000\000\000\000\000\000\019\242\018r\000\000\000\000\000\000\019\246\022\218\000\000\000\000\000\000\003\026\000\000\003\030\000\000\001\138\002\154\021\006\019\254\000\000\000\000\000\000\018\138\003&\020\002\000\000\000\000\018\142\b\146\003.\000\000\021~\000\000\018\146\018\150\017&\017*\018\154\020\006\000\000\000\000\000\000\000\000\020\n\000\000\000\000\001\146\021\130\000\000\000\000\000\000\000\000\000\000\000\000\b\162\018\158\000\000\000\000\020\014\020\018\018\162\020\022\000\000\000\n\000\000\020*\000\000\000\000\017\146\000\000\000\000\0206\018\170\001\150\017\150\tm\000\000\000\000\000\000\n\249\000\000\000\000\000\000\001\154\000\000\000\000\020V\000\000\018>\tm\020Z\020\166\000\000\017.\000\000\000\000\018\174\019\222\020\170\000\000\000\000\000\000\018\182\000\000\000\000\000\000\000\000\000\000\000\n\020\178\000\000\018\186\000\000\005\245\000\000\000\000\018\194\003r\000R\000V\000f\000\194\r\026\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\000\000\001v\000\000\001~\016\242\001\134\002j\002r\002v\016\246\000\000\000\000\000\000\000\000\tm\016\250\000\000\000\000\000\000\000\000\000\000\000\000\017\n\000\000\002~\000\000\000\000\000\000\002\230\000\000\018\018\017\018\000\000\018\022\000\000\000\000\018\026\016\234\000\000\000\000\000\000\002\134\016\238\018.\021\014\000\000\n\245\031&\000\000\016\242\000\000\000\000\002\246\000\000\016\246\031*\000\000\000\000\000\000\000\000\000\000\025\146\018r\000\000\000\000\000\000\019\246\tm\000\000\000\000\000\000\003\026\000\000\003\030\000\000\001\138\002\154\000\000\019\254\tm\000\000\000\000\018\138\003&\020\002\000\000\000\000\018\142\b\146\003.\000\000\021~\000\000\018\146\018\150\017&\017*\018\154\020\006\000\000\000\000\000\000\000\000\020\n\000\000\000\000\001\146\021\130\000\000\000\000\000\000\000\000\000\000\000\000\b\162\018\158\000\000\000\000\020\014\020\018\018\162\020\022\000\000\000\n\000\000\020*\000\000\000\000\017\146\014I\014I\0206\018\170\001\150\017\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\154\000\000\000\000\020V\000\000\000\000\000\000\020Z\020\166\000\000\017.\000\000\000\000\018\174\000\000\020\170\000\000\000\000\000\000\018\182\000\000\000\000\000\000\000\000\000\000\000\n\020\178\000\000\018\186\000\000\005\245\000\000\000\000\018\194\003r\000R\000V\000f\000\194\000\000\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\000\000\001v\000\000\001~\016\242\001\134\002j\002r\002v\016\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014I\000\000\000\000\000\000\000\000\000\000\000\000\002~\000\000\t)\t)\002\230\000\000\018\018\t)\000\000\018\022\000\000\000\000\018\026\014I\000\000\000\000\000\000\002\134\000\000\023Z\000\000\000\000\n\245\000\000\014I\000\000\000\000\000\000\002\246\000\000\014I\014I\000\000\000\000\000\000\000\000\000\000\023j\018r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\000\000\000\000\000\022\000\000\000\000\018\138\003&\000\000\000\000\014I\018\142\001\238\003.\000\000\014I\014I\018\146\018\150\017&\023n\018\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\162\018\158\0075\000\000\000\000\000\000\018\162\0075\000\000\000\n\000\000\000n\0075\000\000\0075\000\000\0075\000\000\018\170\0075\0075\0075\000\000\014\n\0075\014\026\0075\000\000\0075\000\000\014\"\0075\r.\0075\0075\0075\0075\0075\000\000\017.\0075\0075\018\174\0075\023r\000\000\000\000\0075\018\182\0075\000\000\000\000\0075\0075\0075\023z\0075\018\186\000\000\0075\0075\0075\018\194\003r\000\000\0075\0075\000\000\0075\000\000\0075\0075\0075\000\000\000\000\0075\002V\000\000\0075\0075\000\000\000Z\0075\000Z\0075\0075\0075\000\000\000\000\0075\014V\000\000\000\000\0075\0075\000Z\0075\014\194\0075\0075\0075\0075\000Z\000\000\000\000\000\000\000\000\0075\0075\000\000\000\000\000\000\0075\0075\000\000\000\000\0075\000\000\000\000\000\000\000\000\000\000\0075\0075\000\000\0075\0075\000\000\0075\0075\000\000\000\000\0075\0075\0075\0075\0075\0075\0075\0075\000\000\0075\000\000\000\000\000\000\000\000\0075\0075\0075\000\000\0075\0075\0075\0075\0075\0075\000\000\0075\0075\000\000\0075\000\000\000\000\0075\000\000\000\000\0075\0075\000\000\000\000\0075\0075\0075\000\000\0075\0075\000\000\000\000\0075\000\000\000\000\000\000\000\000\0075\0075\0075\000\000\000\000\0075\0075\0075\0075\0075\000\000\000\000\000\000\000\000\0075\0075\000\000\000\000\000\000\0075\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002~\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\254\000\000\000\000\003\002\000\000\000\000\016\234\000\000\002\134\000\000\000\000\016\238\000\000\000\000\000\000\000\000\031&\000\000\016\242\002\246\000\000\000\000\002\250\016\246\031*\000\000\000\000\000\000\003\150\b\006\000\000\003\018\000\000\000\000\t\n\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\001\138\000\000\000\000\000\000\000\000\t\014\003&\000\000\000\000\000\000\t\018\001\238\003.\000\000\000\000\t\022\t\026\t\030\000\000\000\000\t\"\003>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\146\017f\000\000\000\000\017M\000\000\000\000\t&\000\000\000\000\000\000\000\000\t*\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\017\146\000\000\t2\000\000\000\000\001\150\017\150\000\000\017M\017M\000\000\000\000\000\000\t6\000\000\001\154\b\254\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\tB\000\000\000\000\017M\017M\000\000\tJ\t\006\000\000\005Y\n\142\000\000\000\000\017M\000\n\tN\017M\000\000\017M\005\245\tV\003r\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\017M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002~\000\000\000\000\000\000\002\230\n\154\001\138\000\000\000\000\002\254\000\000\000\000\003\002\000\000\000\000\000\000\000\000\002\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\002\246\000\000\n\158\002\250\017M\000\000\000\000\000\000\000\000\003\150\b\006\000\000\003\018\n\166\000\000\t\n\000\000\000\000\017M\003\026\000\000\003\030\000\000\000\000\002\154\017M\000\000\000\000\000\000\000\000\t\014\003&\000\000\017M\017M\t\018\001\238\003.\000\000\000\000\t\022\t\026\t\030\000\000\000\000\t\"\003>\000\000\005N\005V\000\194\000\000\000\198\000\000\005\178\005\186\005\194\006\030\000\000\006.\0066\000\000\006^\t&\006f\000\000\006n\006\154\t*\006\162\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t2\000\000\000\000\000\000\000\000\006\170\000\000\000\000\000\000\000\000\000\000\t6\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\178\000\000\tB\000\000\000\000\000\000\000\000\000\000\tJ\000\000\000\000\t\173\000\000\000\000\000\000\005Q\000\000\tN\000\000\005Q\000\000\000\000\tV\003r\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\006\194\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\005Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002~\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\254\000\000\000\000\003\002\005Q\000\000\000\000\000\000\002\134\000\000\000\000\000\000\000\000\000\000\000\000\005Q\000\000\000\000\000\000\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\000\000\003\150\b\006\000\000\003\018\000\000\000\000\t\n\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\001\225\005Q\005Q\001\225\000\000\t\014\003&\000\000\000\000\000\000\t\018\001\238\003.\000\000\000\000\t\022\t\026\t\030\000\000\004>\t\"\003>\005Q\005Q\000\000\005Q\001\225\001\225\000\000\000\000\000\000\005Q\005Q\000\000\000\000\000\000\005Q\000\000\t&\000\000\000\000\001\225\000\000\t*\000\000\001\225\000\n\001\225\001\225\000\000\000\000\000\000\000\000\000\000\000\000\t2\000\000\001\225\000\000\000\000\001\225\000\000\001\225\000\000\000\000\000\000\t6\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tB\000\000\000\000\000\000\000\000\000\000\tJ\000\000\000\000\002Q\001\225\000\000\000\000\000\000\000\000\tN\000\000\000\000\000\000\000\000\tV\003r\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000\000\000\000\001\225\t~\000\000\001\225\000\000\000\000\000\000\001\225\000\000\000\000\002~\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\254\000\000\001\225\003\002\000\000\000\000\001\225\001\225\002\134\000\000\000\000\000\000\000\000\t\134\000\000\000\000\000\000\001\225\001\225\002\246\000\000\000\000\002\250\000\000\000\000\000\000\001\138\000\000\003\150\b\006\000\000\003\018\000\000\000\000\t>\000\000\000\000\000\000\003\026\000\000\003\030\000\000\021~\002\154\000\000\000\000\000\000\000\000\000\000\t\014\003&\000\000\000\000\000\000\t\018\001\238\003.\001\146\021\130\t\022\t\026\t\030\000\000\000\000\t\"\003>\000\000\000\000\000\000\000\000\005B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\146\000\000\000\000\t&\000\000\001\150\017\150\000\000\t*\000\000\000\000\000\n\000\000\000\000\000\000\001\154\000R\000V\000f\000\194\t2\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\n\000\000\000\000\000\000\tB\000\000\000\000\000\000\000\000\000\000\tJ\000\000\000\000\t\189\002~\000\000\000\000\000\000\002\230\tN\001\138\000\000\000\000\002\234\tV\003r\002\238\000\000\000\000\000\000\000\000\002\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\141\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\000\000\003\014\003\n\000\000\003\018\000\000\000\000\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\002\154\000\000\000\000\000\000\000\000\000\000\003\"\003&\000\000\000\000\000\000\003*\001\238\003.\000\000\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\0152\015:\000\194\000\000\000\198\000\000\015\150\015\158\015\166\016\002\000\000\016\018\016\026\000\000\016B\003B\016J\000\000\016R\016~\003F\016\134\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003N\000\000\000\000\000\000\000\000\016\142\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\150\000\000\003V\000\000\000\000\000\000\000\000\000\000\003b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003z\000\000\000\000\000\000\000\000\003j\003r\001\133\001\133\001\133\001\133\000\000\001\133\0075\001\133\001\133\001\133\001\133\016\166\001\133\001\133\000\000\001\133\000\000\001\133\0075\001\133\001\133\001\133\001\133\000\000\000\000\000\000\000\000\026\018\000\000\0075\000\000\0075\000\000\000\000\000\000\0075\0075\001\133\001\133\001\133\000\000\0075\000\000\026\022\000\000\000\000\000\000\0075\000\000\001\133\0075\000\000\000\000\000\000\0075\001\133\000\000\000\000\001\133\000\000\0075\000\000\001\133\000\000\000\000\026\"\000\000\000\000\001\133\000\000\000\000\0075\015\026\000\000\000\000\001\133\0075\000Z\000\000\000\000\001\133\000\000\0075\000\000\000\000\000\000\000\000\000\000\000\000\001\133\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\0075\000\000\000\000\0075\000\000\000\000\0075\000\000\001\133\000\000\000\000\001\133\000\000\000\000\001\133\000\000\000\000\000\000\000\000\0075\000\000\000\000\000\000\000\000\0075\0075\0075\001\133\0075\0075\000\000\0075\001\133\000\000\001\133\000\000\000\000\001\133\0075\026&\000\000\0075\000\000\000\000\001\133\000\000\001\133\000\000\000\000\001\133\000\000\000\000\000\000\000\000\000\000\000\000\0075\000\000\000\000\000\000\000\000\0075\0075\000\000\001\133\001\133\000\000\000\000\000\000\001\133\001\133\000\000\000\000\000\000\000R\r\030\r&\000\194\000\000\000\198\026\250\r\130\r\138\r\146\r\238\000\000\r\254\014\006\026.\014.\000\000\0146\000\000\014>\014j\002r\014r\000\000\000\000\000\000\0262\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0266\014z\026:\000\000\000\000\000\000\026>\000\000\000\000\000\000\000\000\000\000\026B\000\000\000\000\000\000\000\000\000\000\030J\000\000\000\000\026N\000\000\000\000\000\000\026R\000\000\000\000\000\000\000\000\000\000\026V\000\000\000\000\000\000\000\000\000\000\000\000\014\146\000\000\000\000\000\000\000\000\027\230\000\000\000\000\000\000\026Z\029R\000\000\000\000\016\250\000\000\014\190\000\000\000\000\000\000\000\000\017\n\000\000\000\000\000\000\000\000\000\000\002\230\000\000\001\138\017\018\000\000\018\022\000\000\000\000\018\026\000\000\000\000\014\214\000\000\000\000\026^\018.\000\000\026b\n\245\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\000\000\026f\000\000\000\000\020&\018r\026j\000\n\026n\019\246\026r\026v\000\000\026z\003\026\000\000\003\030\000\000\000\000\000\000\026~\019\254\000\000\026\130\000\000\018\138\003&\020\002\000\000\000\000\018\142\b\146\003.\000\000\000\000\000\000\018\146\018\150\026\134\000\000\018\154\020\006\000\000\026\138\026\142\000\000\020\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\162\018\158\000\000\000\000\020\014\020\018\018\162\020\022\000\000\000\n\000\000\020*\000\000\000\000\000\000\000\000\000\000\0206\018\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\020V\000\000\000\000\000\000\020Z\020\166\016\250\000\000\000\000\000\000\018\174\000\000\020\170\017\n\000\000\000\000\018\182\000\000\000\000\002\230\000\000\001\138\017\018\020\178\018\022\018\186\000\000\018\026\016\234\000\000\018\194\003r\000\000\016\238\018.\000\000\000\000\n\245\031&\000\000\016\242\000\000\000\000\002\246\000\000\016\246\031*\000\000\000\000\000\000\000\000\000\000\018\134\018r\000\000\000\000\000\000\019\246\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\001\138\000\000\000\000\019\254\000\000\000\000\000\000\018\138\003&\020\002\000\000\000\000\018\142\b\146\003.\000\000\021~\000\000\018\146\018\150\000\000\000\000\018\154\020\006\000\000\000\000\000\000\000\000\020\n\000\000\000\000\001\146\021\130\000\000\000\000\000\000\000\000\000\000\000\000\b\162\018\158\000\000\000\000\020\014\020\018\018\162\020\022\000\000\000\n\000\000\020*\000\000\000\000\017\146\000\000\000\000\0206\018\170\001\150\017\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\154\000\000\000\000\020V\000\000\000\000\000\000\020Z\020\166\000\000\000\000\000\000\000\000\018\174\000\000\020\170\000\000\000\000\000\000\018\182\000\000\000\000\000\000\000\000\000\000\000\n\020\178\000\000\018\186\000\000\005\245\000\000\000\000\018\194\003r\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002~\000\000\011a\011a\002\230\000\000\001\138\011a\024Z\018\022\000\000\000\000\018\026\000\000\000\000\000\000\000\000\002\134\000\000\000\000\000\000\000\000\000\000\001\146\024^\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005B\025\146\018r\000\000\000\000\000\000\000\000\000\000\000\000\017\146\000\000\003\026\000\000\003\030\001\150\017\150\002\154\017\241\000\000\000\000\017\241\000\000\018\138\003&\001\154\000\000\000\000\018\142\001\238\003.\000\000\000\000\000\000\018\146\018\150\000\000\r\141\018\154\000\000\000\000\000\000\000\000\000\000\017\241\017\241\000\000\000\000\000\000\017\241\000\n\000\000\017\241\017\241\000\000\b\162\018\158\000\000\000\000\017\241\000\000\018\162\017\241\017\241\000\n\017\241\017\241\000\000\r\141\017\241\000\000\017\241\017\241\018\170\000\000\017\241\000\000\000\000\017\241\000\000\017\241\017\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\141\000\000\000\000\000\000\r\141\000\000\018\174\000\000\000\000\000\000\000\000\000\000\018\182\000\000\r\141\000\000\017\241\000\000\017\241\000\000\000\000\018\186\000\000\000\000\000\000\000\000\018\194\003r\000\000\017\241\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\r\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006Y\000\000\000\000\006Y\000\000\000\000\017\241\017\241\000\000\017\241\017\241\017\241\000\000\017\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\000\000\006Y\006Y\000\000\006Y\017\241\000\000\017\241\000\000\006Y\006Y\000\000\000\000\017\241\017\241\017\241\006Y\017\241\017\241\017\241\r\137\000\000\006Y\006Y\000\000\000\000\006Y\006Y\006Y\006Y\000\000\000\000\006Y\000\000\000\000\006Y\006Y\006Y\006Y\000\000\000\000\000\000\006Y\000\000\000\000\006Y\006Y\000\000\006Y\006Y\000\000\r\137\006Y\000\000\006Y\006Y\000\000\000\000\006Y\000\000\000\000\006Y\000\000\006Y\006Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\137\000\000\000\000\000\000\000\000\000\000\006Y\000\000\000\000\000\000\r\137\000\000\006Y\000\000\006Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006Y\006Y\006Y\000\000\000\000\b\205\006Y\006Y\006Y\000\000\r\137\000\000\000\000\000\000\000\000\000\000\000\000\006Y\000\000\000\000\000\000\000\000\006Y\000\000\000\000\006Y\000\000\006Y\006Y\006Y\006Y\b\205\006Y\006Y\006Y\000\000\000\000\006Y\006Y\000\000\000\000\000\000\000\000\006Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006Y\000\000\006Y\000\000\000\000\000\000\000\000\000\000\006Y\006Y\006Y\000\000\006Y\006Y\006Y\012\249\012\249\012\249\012\249\000\000\012\249\000\000\012\249\012\249\012\249\012\249\000\000\012\249\012\249\000\000\012\249\000\000\012\249\000\000\012\249\012\249\012\249\012\249\000\000\000\000\017\161\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\249\012\249\012\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\249\000\000\017\161\017\161\000\000\000\000\012\249\017\161\000\000\027\n\003\138\017\161\000\000\027\018\000\000\000\000\000\000\017\161\000\000\012\249\017\161\017\161\000\000\017\161\017\161\000\000\012\249\003\146\000\000\017\161\003\166\012\249\000\000\017\161\000\000\000\000\017\161\000\000\017\161\017\161\012\249\012\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\249\000\000\017\161\012\249\017\161\000\000\012\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\000\000\000\000\012\249\000\000\000\000\005\002\000\000\012\249\000\000\012\249\000\000\000\000\012\249\000\000\000\000\000\000\000\000\000\000\000\000\012\249\000\000\012\249\000\000\000\000\012\249\017\161\017\161\000\000\017\161\017\161\005\006\000\000\017\161\000\000\000\000\000\000\000\000\000\000\000\000\012\249\012\249\005\014\000\000\000\000\027f\012\249\017\161\000\000\000\000\017\161\017\161\017\161\017\161\017\161\000\000\000\000\000\000\017\161\017\161\017\161\000\000\017\161\017\161\017\161\0171\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0171\0171\000\000\000\000\000\000\0171\000\000\000\000\003\138\0171\000\000\000\000\000\000\000\000\000\000\0171\000\000\000\000\0171\0171\000\000\0171\0171\000\000\000\000\003\146\000\000\0171\003\166\000\000\000\000\0171\000\000\000\000\0171\000\000\0171\0171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\0171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0171\012\233\012\233\012\233\012\233\000\000\012\233\005\002\012\233\012\233\012\233\012\233\000\000\012\233\012\233\000\000\012\233\000\000\012\233\000\000\012\233\012\233\012\233\012\233\000\000\000\000\000\000\0171\0171\000\000\0171\0171\005\006\000\000\0171\000\000\000\000\000\000\012\233\012\233\012\233\000\000\000\000\005\014\000\000\000\000\000\000\000\000\0171\000\000\012\233\0171\0171\0171\0171\0171\012\233\000\000\000\000\0171\0171\0171\000\000\0171\0171\0171\005N\005V\000\194\012\233\000\198\000\000\005\178\005\186\005\194\006\030\012\233\006.\0066\000\000\006^\012\233\006f\000\000\006n\006\154\000\000\006\162\000\000\000\000\012\233\012\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\170\000\000\000\000\000\000\000\000\000\000\002\162\000\000\000\000\000\000\012\233\000\000\000\000\012\233\000\000\000\000\012\233\006\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\233\000\000\000\000\000\000\000\000\012\233\000\000\012\233\000\000\000\000\012\233\000\000\000\000\000\000\000\000\000\000\000\000\012\233\000\000\012\233\000\000\000\000\012\233\006\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\233\012\233\000\000\000\000\000\000\027\014\012\233\012\237\012\237\012\237\012\237\000\000\012\237\000\000\012\237\012\237\012\237\012\237\000\000\012\237\012\237\000\000\012\237\000\000\012\237\000\000\012\237\012\237\012\237\012\237\000\000\000\000\006a\000\n\000\000\006a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\237\012\237\012\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\237\000\000\006a\006a\000\000\000\000\012\237\006a\000\000\027j\006a\006a\000\000\000\000\000\000\000\000\000\000\006a\000\000\012\237\006a\006a\000\000\006a\006a\000\000\012\237\006a\000\000\006a\006a\012\237\000\000\006a\000\000\000\000\006a\000\000\006a\006a\012\237\012\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\237\000\000\006a\012\237\006a\000\000\012\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006a\000\000\000\000\000\000\012\237\000\000\000\000\006a\000\000\012\237\000\000\012\237\000\000\000\000\012\237\000\000\000\000\000\000\000\000\000\000\000\000\012\237\000\000\012\237\000\000\000\000\012\237\006a\006a\000\000\006a\b\217\006a\000\000\006a\000\000\000\000\000\000\000\000\000\000\000\000\012\237\012\237\006a\000\000\000\000\006]\012\237\006a\006]\000\000\006a\000\000\006a\000\000\006a\000\000\000\000\000\000\006a\006a\006a\000\000\006a\006a\006a\000\000\000\000\000\000\000\000\000\000\000\000\006]\006]\000\000\000\000\000\000\006]\000\000\000\000\006]\006]\000\000\000\000\000\000\017e\000\000\006]\000\000\000\000\006]\006]\000\000\006]\006]\000\000\000\000\006]\000\000\006]\006]\000\000\000\000\006]\000\000\000\000\006]\000\000\006]\006]\000\000\017e\017e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\017e\017e\000\000\006]\000\000\006]\000\000\000\000\b:\000\000\017e\000\000\000\000\017e\000\000\017e\006]\000R\r\030\r&\000\194\000\000\000\198\006]\r\130\r\138\r\146\r\238\000\000\r\254\014\006\000\000\014.\000\000\0146\000\000\014>\014j\002r\014r\000\000\000\000\017e\006]\006]\000\000\006]\b\209\006]\000\000\006]\000\000\000\000\000\000\027r\014z\027\142\000\000\000\000\006]\000\000\000\000\000\000\000\000\006]\000\000\027\154\006]\000\000\006]\000\000\006]\014\130\000\000\000\000\006]\006]\006]\000\000\006]\006]\006]\017e\000\000\000\000\027\178\000\000\000\000\000\000\017e\000\000\000\000\014\146\000\000\000\000\000\000\000\000\027\230\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\028\006\014\190\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017e\017e\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\b\030\014\214\000\000\b\"\028\018\000\000\000\000\028j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\246\028\130\000\000\000\000\000\000\000\000\028\174\000\000\n\221\b>\bJ\028\222\000\000\bb\bz\b~\000\000\000\000\028\234\003\026\029\022\003\030\000\000\030\022\000\000\000\000\000\000\000\000\000\000\000\000\b\130\003&\000\000\b\134\b\138\b\142\b\146\003.\030\"\030:\000\000\b\150\b\154\000\000\030F\b\158\001\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\162\b\166\000\000\000\000\000\000\000\000\b\170\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007U\000\000\b\182\000\000\b\198\002\230\000\000\001\138\000\000\000\000\b\030\000\000\000\000\b\"\000\000\b\206\000\000\000\000\000\000\000\000\000\000\b\214\000\000\000\000\000\000\000\000\000\000\005i\000\000\002\246\b\218\000\000\000\000\000\000\000\000\b\226\003r\000\000\b>\bJ\000\000\000\000\bb\bz\b~\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\130\003&\000\000\b\134\b\138\b\142\b\146\003.\000\000\000\000\000\000\b\150\b\154\000\000\000\000\b\158\001\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\162\b\166\000\000\000\000\000\000\000\000\b\170\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007U\000\000\b\182\000\000\b\198\002\230\000\000\001\138\000\000\000\000\b\030\000\000\000\000\b\"\000\000\b\206\000\000\000\000\000\000\000\000\000\000\b\214\000\000\000\000\000\000\000\000\000\000\n\001\000\000\002\246\b\218\000\000\000\000\000\000\000\000\b\226\003r\000\000\b>\bJ\000\000\n\226\bb\bz\b~\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\130\003&\000\000\b\134\b\138\b\142\b\146\003.\n\234\n\242\000\000\b\150\b\154\000\000\000\000\b\158\001\154\000\000\000\000\000\000\000\000\000\000\000\000\n\250\000\000\000\000\000\000\000\000\000\000\011\002\011\n\000\000\b\162\b\166\000\000\000\000\000\000\000\000\b\170\011\018\000\000\000\n\011\026\000\000\011\"\000\000\000\000\000\000\000\000\000\000\b\178\000\000\017\185\000\000\000\000\017\185\000\000\000\000\000\000\007U\000\000\b\182\000\000\b\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011*\000\000\000\000\b\206\000\000\000\000\000\000\017\185\017\185\b\214\000\000\000\000\017\185\000\000\000\000\002\129\017\185\000\000\b\218\000\000\000\000\000\000\017\185\b\226\003r\017\185\017\185\000\000\017\185\017\185\000\000\000\000\000\000\000\000\017\185\000\000\b:\000\000\017\185\000\000\0112\017\185\000\000\017\185\017\185\000\000\000\000\011:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\173\000\000\000\000\000\000\000\000\000\000\000\000\006\173\000\000\017\185\000\000\017\185\000\000\000\000\000\000\011B\011J\000\000\000\000\000\000\000\000\000\000\017\185\000R\000V\000f\000\194\r\026\000\198\016\234\000\202\000\210\000\218\0016\016\238\001F\001N\000\000\001v\031\018\001~\016\242\001\134\002j\002r\002v\016\246\031\022\000\000\017\185\017\185\000\000\017\185\017\185\000\000\000\000\017\185\000\000\000\000\000\000\000\000\002~\017I\000\000\000\000\017I\000\000\002\162\000\000\000\000\017\185\000\000\000\000\017\185\017\185\017\185\017\185\017\185\002\134\000\000\000\000\017\185\017\185\017\185\000\000\017\185\017\185\017\185\017I\017I\000\000\000\000\000\000\017I\000\000\000\000\000\000\017I\002\150\000\000\000\000\000\000\000\000\017I\000\000\000\000\017I\017I\000\000\017I\017I\000\000\000\000\002\154\000\000\017I\000\000\b:\000\000\017I\000\000\000\000\017I\000\000\017I\017I\000\000\000\000\000\000\000\000\000\000\000\000\017&\017*\000\000\014\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017I\000\000\017I\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\017I\005\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007M\017.\017I\017I\000\000\017I\017I\000\000\000\000\017I\000\000\007M\000\000\000\000\000\000\017\133\007M\000\000\017\133\000\000\000\000\000\000\000\000\017I\000\000\000\000\017I\017I\017I\017I\017I\000\000\000\000\000\000\017I\017I\017I\000\000\017I\017I\017I\017\133\017\133\000\000\000\000\000\000\017\133\000\000\000\000\018\218\017\133\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\017\133\017\133\000\000\017\133\017\133\000\000\000\000\018\226\000\000\017\133\018\238\000\000\000\000\017\133\000\000\000\000\017\133\000\000\017\133\017\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\017\133\000\000\017\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\000\000\018\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\133\017\133\000\000\017\133\000\000\018\254\002\230\017\133\001\138\000\000\000\000\b\030\000\000\000\000\b\"\000\000\019\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\017\133\000\000\000\000\000\000\002\246\000\000\017\133\017\133\017\133\000\000\017\133\017\133\017\133\b>\bJ\000\000\000\000\bb\bz\011r\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\130\003&\000\000\b\134\b\138\b\142\b\146\003.\000\000\000\000\000\000\b\150\b\154\000\000\000\000\b\158\001\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\000\000\000\000\001\209\000\000\000\000\000\000\b\162\b\166\000\000\000\000\000\000\000\000\b\170\000\000\001\209\000\n\000\000\001\209\000\000\000\000\000\000\000\000\000\000\000\000\b\178\001\209\001\209\000\000\000\000\000\000\001\209\000\000\000\000\007U\001\209\000\000\000\000\b\198\000\000\000\000\001\209\001\209\000\000\001\209\001\209\001\209\001\209\001\209\b\206\001\209\000\000\000\000\001\209\000\000\b\214\001\209\001\209\000\000\001\209\001\209\n\017\001\209\001\209\b\218\000\000\000\000\000\000\001\209\b\226\003r\000\000\001\209\000\000\000\000\001\209\000\000\001\209\001\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\000\000\001\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\000\000\001\209\000\000\001\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\003\174\000\000\001\209\001\209\000\000\000\000\001\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\003\182\000\000\001\209\001\209\000\000\001\209\001\209\000\000\001\209\001\209\001\209\001\209\001Y\000\000\000\000\001Y\004\242\001\209\001\209\000\000\001\209\001\209\001\209\001\209\001\209\001\209\001\209\000\000\000\000\000\000\000\000\004\230\001\209\001\209\000\000\001\209\001\209\001\209\001Y\001Y\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001Y\001Y\000\000\001Y\001Y\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001Y\000\000\000\000\003\246\000\000\004\006\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\005I\005I\005I\005I\000\000\005I\000\000\005I\005I\005I\005I\000\000\005I\005I\000\000\005I\000\000\005I\000\000\005I\005I\005I\005I\000\000\000\000\000\000\001Y\000\000\000\000\001Y\001Y\000\000\002\202\003\254\000\000\000\000\000\000\000\000\005I\001M\000\000\000\000\001M\000\000\005I\000\000\000\000\001Y\000\000\000\000\001Y\001Y\001Y\001Y\001Y\005I\000\000\000\000\000\000\001Y\001Y\000\000\001Y\001Y\001Y\001M\001M\000\000\000\000\000\000\001M\000\000\000\000\000\000\001M\005I\000\000\000\000\000\000\000\000\001M\005I\000\000\001M\001M\000\000\001M\001M\000\000\000\000\005I\000\000\001M\000\000\000\000\000\000\001M\000\000\000\000\003\246\000\000\001M\001M\000\000\005I\005I\000\000\000\000\000\000\000\000\000\000\000\000\005I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001M\000\000\001M\000\000\000\000\000\000\000\000\000\000\000\000\005I\000\000\000\000\000\000\001M\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\001M\000\000\000\000\001M\001M\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\001Q\005I\000\000\001Q\000\000\002\162\000\000\000\000\001M\000\000\000\000\001M\001M\001M\001M\001M\002\134\000\000\000\000\000\000\001M\001M\000\000\001M\001M\001M\001Q\001Q\000\000\000\000\000\000\001Q\000\000\000\000\000\000\001Q\002\166\000\000\000\000\000\000\000\000\001Q\002\194\000\000\001Q\001Q\000\000\001Q\001Q\000\000\000\000\002\154\000\000\001Q\000\000\000\000\000\000\001Q\000\000\000\000\003\246\000\000\001Q\001Q\000\000\002\170\002\174\000\000\000\000\000\000\000\000\000\000\000\000\002\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\001Q\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\001Q\000\000\000\000\000\000\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\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\001Q\001Q\000\000\000\000\003\254\000\000\000\000\000\000\000\000\000\000\001U\015\017\000\000\001U\000\000\000\000\000\000\000\000\001Q\000\000\000\000\001Q\001Q\001Q\001Q\001Q\000\000\000\000\000\000\000\000\001Q\001Q\000\000\001Q\001Q\001Q\001U\001U\000\000\000\000\000\000\001U\000\000\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001U\001U\000\000\001U\001U\000\000\000\000\000\000\000\000\001U\000\000\000\000\000\000\001U\000\000\000\000\003\246\000\000\004\006\001U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001U\000\000\001U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001U\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\001U\000\000\000\000\001U\001U\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\001e\000\000\000\000\001e\000\000\002\162\000\000\000\000\001U\000\000\000\000\001U\001U\001U\001U\001U\002\134\000\000\000\000\000\000\001U\001U\000\000\001U\001U\001U\003\230\004\014\000\000\000\000\000\000\001e\000\000\000\000\000\000\001e\002\166\000\000\000\000\000\000\000\000\003\238\002\194\000\000\001e\001e\000\000\001e\001e\000\000\000\000\002\154\000\000\001e\000\000\000\000\000\000\001e\000\000\000\000\003\246\000\000\004\006\001e\000\000\002\170\002\174\000\000\000\000\000\000\000\000\000\000\000\000\002\178\000\000\000\000\000\000\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\030\000\000\001e\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\001e\000\000\000\000\000\000\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\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001e\000\000\000\000\001e\001e\000\000\000\000\003\254\000\000\000\000\000\000\000\000\000\000\001]\002\181\000\000\001]\000\000\000\000\000\000\000\000\001e\000\000\000\000\001e\001e\001e\001e\001e\000\000\000\000\000\000\000\000\001e\001e\000\000\001e\001e\001e\003\230\004\014\000\000\000\000\000\000\001]\000\000\000\000\000\000\001]\000\000\000\000\000\000\000\000\000\000\003\238\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\001]\000\000\000\000\003\246\000\000\004\006\001]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001]\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\001]\000\000\000\000\001]\001]\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\001a\000\000\000\000\001a\000\000\002\162\000\000\000\000\001]\000\000\000\000\001]\001]\001]\001]\001]\002\134\000\000\000\000\000\000\001]\001]\000\000\001]\001]\001]\003\230\004\014\000\000\000\000\000\000\001a\000\000\000\000\000\000\001a\002\166\000\000\000\000\000\000\000\000\003\238\002\194\000\000\001a\001a\000\000\001a\001a\000\000\000\000\002\154\000\000\001a\000\000\000\000\000\000\001a\000\000\000\000\003\246\000\000\004\006\001a\000\000\002\170\002\174\000\000\000\000\000\000\000\000\000\000\000\000\002\178\000\000\000\000\000\000\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\030\000\000\001a\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\001a\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\001a\000\000\000\000\001a\001a\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\001i\002\173\000\000\001i\000\000\000\000\000\000\000\000\001a\000\000\000\000\001a\001a\001a\001a\001a\002\134\000\000\000\000\000\000\001a\001a\000\000\001a\001a\001a\003\230\004\014\000\000\000\000\000\000\001i\000\000\000\000\000\000\001i\002\150\000\000\000\000\000\000\000\000\003\238\007\014\000\000\001i\001i\000\000\001i\001i\000\000\000\000\002\154\000\000\001i\000\000\007\018\007\022\004\022\000\000\000\000\003\246\000\000\004\006\001i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\026\000\000\000\000\000\000\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\030\000\000\001i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001i\000\000\000\000\000\000\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\030\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\001i\001i\000\000\000\000\003\254\000\000\000\000\000\000\005y\000\000\001q\000\000\000\000\001q\000\000\000\000\000\000\000\000\001i\000\000\000\000\001i\001i\001i\001i\001i\000\000\000\000\000\000\000\000\001i\001i\000\000\001i\001i\001i\003\230\004\014\000\000\000\000\000\000\001q\000\000\000\000\000\000\001q\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001q\001q\000\000\001q\001q\000\000\000\000\000\000\000\000\001q\000\000\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\001q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\030\000\000\001q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001q\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\004&\000\000\000\000\001q\001q\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\004\134\000\000\000\000\001m\000\000\000\000\000\000\000\000\001q\000\000\000\000\001q\001q\001q\001q\001q\002\134\000\000\000\000\000\000\001q\001q\000\000\001q\004.\001q\003\230\004\014\000\000\000\000\000\000\001m\000\000\000\000\000\000\001m\002\150\000\000\000\000\000\000\000\000\003\238\007\014\000\000\001m\001m\000\000\001m\001m\000\000\000\000\002\154\000\000\001m\000\000\007\018\007\022\004\022\000\000\000\000\003\246\000\000\004\006\001m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\026\000\000\000\000\000\000\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\030\000\000\001m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001m\000\000\000\000\000\000\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\030\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\001m\001m\000\000\000\000\003\254\000\000\000\000\000\000\n9\000\000\004\134\000\000\000\000\001u\000\000\000\000\000\000\000\000\001m\000\000\000\000\001m\001m\001m\001m\001m\000\000\000\000\000\000\000\000\001m\001m\000\000\001m\004.\001m\003\230\004\014\000\000\000\000\000\000\001u\000\000\000\000\000\000\001u\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001u\001u\000\000\001u\004\142\t\194\000\000\000\000\t\202\001u\000\000\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\001u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\218\t\226\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\030\t\234\001u\000\000\000\000\0025\000\000\t\242\t\250\000\000\000\000\000\000\000\000\001u\000\000\000\000\000\000\n\002\000\000\000\000\n\n\004%\n\018\000\000\000\000\000j\004%\000\000\000z\000\000\000\154\004%\000\000\004%\000\000\000\000\000\000\000\162\004%\004%\004&\000\000\000\000\001u\001u\000\000\000\000\003\254\000\000\n\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004%\000\000\001u\000\000\000\000\001u\001u\001u\001u\001u\000\000\000\170\004%\000\000\001u\001u\004%\001u\004.\001u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\"\004%\004%\0025\000\000\000\000\000\000\n*\000\000\000\000\000\000\000\000\000\000\000\000\004%\000\000\000\186\000\000\000\000\000\000\000\000\0025\000\000\004%\000\000\0025\0025\000\000\004%\004%\000\000\000\000\000\000\000\000\000\000\000\000\n2\n:\004%\000\000\004!\000\000\004%\000\000\000\222\004!\000\000\000\238\000\000\001\014\004!\000\000\004!\004%\000\000\000\000\001\022\004!\004!\000\000\000\000\000\000\000\000\004%\000\000\000\000\000\000\000\000\004%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\030\004!\000\000\000\000\000\000\004!\000\000\000\000\000\000\000\000\000\000\000\000\004%\000\000\000\000\004%\004%\000\000\000\000\004%\004!\004!\000\000\003\218\004%\004%\0046\000\000\000\000\004%\000\000\000\000\000\000\004!\000\000\001.\000\000\000\000\000\000\000\000\000\000\000\000\004!\000\000\000\000\000\000\000\000\004!\004!\004f\004n\000\189\000\000\000\000\002-\000\000\000\000\004!\002-\000\000\000\000\004!\000\000\000\000\004v\000\000\000\000\002-\002-\000\165\004~\004\158\004!\000\000\000\000\000\000\002-\003\230\004\014\000\000\004\166\000\000\004!\004\174\000\000\004\182\002-\004!\000\000\000\000\000\000\000\000\003\238\000\000\000\000\000\165\000\165\000\000\000\189\000\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\022\000\000\003\238\003\246\004\190\004\006\002-\000\000\000\165\000\165\000\000\000\000\004!\000\000\000\000\004!\004!\002-\000\165\004!\000\000\003\246\000\000\004\006\004!\004!\000\000\000\000\000\000\004!\000\000\000\000\004\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\198\000\000\000\000\002-\002-\000\000\000\165\004\206\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\129\000\000\000\000\000\000\000\000\002-\000\000\000\000\002-\002-\002-\002-\004&\000\000\000\000\000\000\000\000\002-\002-\003\254\004\214\004\222\002-\003\230\004\014\000\000\000\000\000\000\000\129\000\000\000\165\000\000\000\129\000\189\000\000\000\000\000\000\003\254\003\238\000\000\000\189\000\129\000\129\000\000\000\129\000\129\000\000\000\000\000\189\004.\000\129\000\165\000\000\000\000\004\022\000\000\000\000\003\246\000\165\004\006\000\129\000\000\000\000\000\000\000\000\000i\000\165\000\165\000i\000\000\000\000\000\000\000\000\000\000\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\030\000\000\000\129\000\000\000\000\000i\000i\000\000\000\000\000\000\000i\000\000\000\000\000\129\000i\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\000i\000i\000\000\000i\000i\000\000\000\000\000\000\000\000\000i\000\000\000\000\000\000\000i\000\000\000\000\003\246\004&\004\006\000i\000\129\000\129\000\000\000\000\003\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\129\000\129\000\129\000\129\000i\000\000\000i\000\000\000\000\000\129\000\129\000\000\000\129\004.\000\129\000\000\000\000\000i\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000i\000\000\000\000\000i\000i\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\000e\000\000\000\000\000e\000\000\000\000\000\000\000\000\000i\000\000\000\000\000i\000i\000i\000i\000\000\002\134\000\000\000\000\000\000\000i\000i\000\000\000i\000i\000i\000e\000e\000\000\000\000\000\000\000e\000\000\000\000\000\000\000e\002\150\000\000\000\000\000\000\000\000\003\238\007\014\000\000\000e\000e\000\000\000e\000e\000\000\000\000\002\154\000\000\000e\000\000\007\018\007\022\000e\000\000\000\000\003\246\000\000\004\006\000e\000\000\000\000\000\000\000\000\000]\000\000\000\000\000]\000\000\007\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e\000\000\000e\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]\000]\000\000\007\030\000\000\000\000\000]\000\000\000\000\000\000\000]\000\000\000\000\003\246\000e\000]\000]\000e\000e\000\000\000\000\003\254\000\000\000\000\000\000\002\161\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\000e\000e\000\000\000e\000e\000e\000\000\000\000\000]\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000]\000\000\000\000\000]\000]\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\004\134\000\000\000\000\000\137\000\000\000\000\000\000\000\000\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]\003\230\004\014\000\000\000\000\000\000\000\137\000\000\000\000\000\000\000\137\002\150\000\000\000\000\000\000\000\000\003\238\031\206\000\000\000\137\000\137\000\000\000\137\004\142\000\000\000\000\002\154\000\000\000\137\000\000\031\210\007\022\004\022\000\000\000\000\003\246\000\000\004\006\000\137\000\000\000\000\000\000\000\000\004\134\000\000\000\000\000}\000\000\007\026\000\000\000\000\000\000\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\030\000\000\000\137\000\000\000\000\003\230\004\014\000\000\000\000\000\000\000}\000\000\000\000\000\137\000}\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\000}\000}\000\000\000}\000}\000\000\031\214\000\000\000\000\000}\000\000\000\000\000\000\004\022\000\000\000\000\003\246\004&\004\006\000}\000\137\000\137\000\000\000\000\003\254\000\000\000\000\000\000\005q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\137\000\000\000\000\000\137\000\137\000\137\000\137\004\030\000\000\000}\000\000\000\000\000\137\000\137\000\000\004\150\004.\000\137\000\000\000\000\000}\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\004&\000\000\000\000\000}\000}\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\000u\000\000\000\000\000u\000\000\000\000\000\000\000\000\000}\000\000\000\000\000}\000}\000}\000}\000\000\002\134\000\000\000\000\000\000\000}\000}\000\000\000}\004.\000}\003\230\004\014\000\000\000\000\000\000\000u\000\000\000\000\000\000\000u\002\150\000\000\000\000\000\000\000\000\003\238\031\206\000\000\000u\000u\000\000\000u\000u\000\000\000\000\002\154\000\000\000u\000\000\031\210\007\022\000u\000\000\000\000\003\246\000\000\004\006\000u\000\000\000\000\000\000\000\000\000a\000\000\000\000\000a\000\000\007\026\000\000\000\000\000\000\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\030\000\000\000u\000\000\000\000\000a\000a\000\000\000\000\000\000\000a\000\000\000\000\000u\000a\000\000\000\000\000\000\000\000\000\000\000a\000\000\000\000\000a\000a\000\000\000a\000a\000\000\031\214\000\000\000\000\000a\000\000\000\000\000\000\000a\000\000\000\000\003\246\000u\000a\000a\000u\000u\000\000\000\000\003\254\000\000\000\000\000\000\n\029\000\000\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\000a\000\000\000a\000\000\000\000\000u\000u\000\000\000u\000u\000u\000\000\000\000\000a\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000a\000\000\000\000\000a\000a\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\000m\000\000\000\000\000m\000\000\000\000\000\000\000\000\000a\000\000\000\000\000a\000a\000a\000a\000\000\002\134\000\000\000\000\000\000\000a\000a\000\000\000a\000a\000a\003\230\004\014\000\000\000\000\000\000\000m\000\000\000\000\000\000\000m\002\150\000\000\000\000\000\000\000\000\003\238\031\206\000\000\000m\000m\000\000\000m\000m\000\000\000\000\002\154\000\000\000m\000\000\031\210\007\022\000m\000\000\000\000\003\246\000\000\004\006\000m\000\000\000\000\000\000\000\000\000q\000\000\000\000\000q\000\000\007\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000m\000\000\000m\000\000\000\000\003\230\004\014\000\000\000\000\000\000\000q\000\000\000\000\000m\000q\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\000q\000q\000\000\000q\000q\000\000\031\214\000\000\000\000\000q\000\000\000\000\000\000\000q\000\000\000\000\003\246\000m\004\006\000q\000m\000m\000\000\000\000\003\254\000\000\000\000\000\000\002\145\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\000m\000m\004\030\000\000\000q\000\000\000\000\000m\000m\000\000\000m\000m\000m\000\000\000\000\000q\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\000\000\001F\001N\000\000\001v\000\000\001~\000\000\001\134\002j\002r\002v\000\000\000\000\000\000\000q\000\000\000\000\000q\000q\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002~\004\134\000\000\000\000\000\133\000\000\000\000\000\000\000\000\000q\000\000\000\000\000q\000q\000q\000q\000\000\002\134\000\000\000\000\000\000\000q\000q\000\000\000q\000q\000q\003\230\004\014\000\000\000\000\000\000\000\133\000\000\000\000\000\000\000\133\002\150\000\000\000\000\000\000\000\000\003\238\007&\000\000\000\133\000\133\000\000\000\133\004\142\000\000\000\000\002\154\000\000\000\133\000\000\007\018\007\022\004\022\000\000\000\000\003\246\000\000\004\006\000\133\000\000\000\000\000\000\000\000\000y\000\000\000\000\000y\000\000\007\026\000\000\000\000\000\000\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\030\000\000\000\133\000\000\000\000\003\230\004\014\000\000\000\000\000\000\000y\000\000\000\000\000\133\000y\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\000y\000y\000\000\000y\000y\000\000\000\000\000\000\000\000\000y\000\000\000\000\000\000\004\022\000\000\000\000\003\246\004&\004\006\000y\000\133\000\133\000\000\000\000\003\254\000\000\000\000\000\000\nI\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\133\000\000\000\000\000\133\000\133\000\133\000\133\004\030\000\000\000y\000\000\000\000\000\133\000\133\000\000\000\133\004.\000\133\000\000\000\000\000y\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\030\0075\016.\000\000\000\000\000\000\000\000\0166\000\000\000\000\000\000\000\000\000\000\0075\004&\000\000\000\000\000y\000y\000\000\000\000\003\254\000\000\000\000\0075\000\000\0075\012\253\012\253\000\000\0075\0075\000\000\012\253\000\000\000y\0075\000\000\000y\000y\000y\000y\0075\000\000\000\000\0075\000\000\000y\000y\0075\000y\000y\000y\000\000\000\000\0075\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0075\016j\000\000\012\253\000\000\0075\000Z\000\000\000\000\000\000\000\000\0075\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0075\012\253\000\000\0075\000\000\000\000\0075\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\238\0075\000\000\000\000\000\000\000\000\0075\0075\0075\000\000\0075\0075\000\000\0075\000\000\000\000\002\246\000\000\000\000\002\250\0075\000\000\000\000\0075\000\000\003\006\003\n\000\000\003\018\000\000\b\194\000\000\000\000\000\000\000\000\003\026\000\000\003\030\0075\000\000\000\000\000\000\000\000\0075\0075\012\253\003\"\003&\000\000\000\000\011\142\003*\001\238\003.\000\000\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\000\000\000\000\000\000\r>\0075\rN\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003B\0075\000\000\000\000\000\000\003F\000\000\000\000\000\n\r\170\0075\r\186\0075\000\000\0075\000\000\000\000\003N\0075\0075\000\000\000\000\0075\000\000\0075\0075\000\000\000\000\003R\n\237\0075\000\000\000~\0075\000\142\0075\000\000\0075\000\000\0075\0075\003V\0075\0075\000\000\0075\000\000\003b\000\000\000\000\n\237\0075\n\237\000\000\0075\016\170\003z\000\000\0075\0075\000Z\003j\003r\0075\0075\0075\015R\0075\015b\015\190\0075\015\206\000\000\000\000\000\000\0075\016\214\000\000\000\000\0075\0075\000Z\0075\000\000\000\130\0075\0075\0075\000\000\000\000\0075\000\000\0075\0075\0075\0075\0075\0075\000\000\0075\0075\000\000\0075\000\000\000Z\0075\0075\0075\0075\000\000\000\000\0075\0075\0075\0075\0075\0075\000\000\0075\000\000\000\000\0075\0075\000\000\0075\0075\000\000\0075\0075\0075\000\000\0075\0075\0075\0075\0075\0075\0075\000Z\0075\0075\000Z\000\000\0075\0075\0075\0075\000\000\0075\0075\000\000\000\000\000\000\000\000\000Z\000\000\0075\0075\000\000\000\000\000\000\0075\000\000\000\000\0075\0075\0075\000\000\0075\0075\0075\0075\0075\000\000\0075\000\000\000\000\000\000\000\000\000\000\000\000\0075\000\000\000\000\0075\0075\000\000\0075\000\000\0075\0075\0075\0075\0075\0075\000\000\0075\0075\0075\0075\000\000\0075\000\000\0075\000\000\017\157\0075\0075\017\157\0075\000\000\0075\000\000\000\000\0075\000\000\001R\000\000\001b\0075\000\000\0075\000\000\001j\0075\000\000\0075\0075\000\000\0075\0075\017\157\017\157\000\000\000\000\000\000\017\157\000\000\000\000\000\000\017\157\000\000\000\000\000\000\0075\000\000\017\157\0075\0075\017\157\017\157\0075\017\157\017\157\000\000\000\000\0075\0075\017\157\0075\b:\0075\017\157\0075\000\000\017\157\000\000\017\157\017\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0075\0075\000\000\000\000\000\000\002\158\000\000\0075\rB\000\000\000Z\000\000\000\000\0075\000\000\000\000\017\157\000\000\017\157\0075\000\000\000\000\0075\000\000\000\000\000\000\000\000\0075\0075\017\157\0075\0075\0075\000\000\000\000\000\000\0075\0075\006:\000\000\006J\0075\0075\0075\000\000\006R\000\000\000\000\0075\0075\000\000\0075\0075\000\000\000\000\0075\017\157\017\157\000\000\017\157\000\000\0075\0075\017\157\000\000\000\000\000\000\0075\000\000\0075\000\000\000\000\0075\000\000\0075\r\154\000\000\0075\000Z\000\000\017\157\0075\017\157\0075\000\000\0075\0075\000\000\017\157\017\157\017\157\000\000\017\157\017\157\017\157\000\000\000\000\0075\000\000\0075\0075\0075\000\000\0075\0075\0075\000\000\0075\0075\0075\000Z\0075\0075\0075\000\000\0075\000\000\0075\0075\000\000\000\000\000\000\0075\000\000\0075\000\000\000\000\0075\0075\0075\0075\0075\000\000\0075\0075\000\000\0075\0075\000\000\0075\000\000\0075\000\000\0075\0075\000Z\0075\000\000\000\000\000\000\0075\000\000\0075\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0075\0075\000\000\000\000\000\000\0075\0075\000\000\000\000\000\000\000\000\0075\000\000\000\000\0075\000\000\000\000\0075\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\238\0075\000\000\000\000\000\000\000\000\0075\0075\0075\000\000\0075\0075\000\000\0075\0075\000\000\002\246\0075\000\000\002\250\0075\000\000\0075\0075\000\000\003\006\003\n\0075\003\018\000\000\b:\000\000\000\000\000\000\000\000\003\026\000\000\003\030\0075\000\000\000\000\000\000\000\000\0075\0075\000\000\003\"\003&\000\000\000\000\000\000\003*\001\238\003.\000\000\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\000\000\000\000\000\000\000\000\0075\r\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003B\0075\r\242\000\000\000\000\003F\000\000\000\000\000\n\0075\014\014\000\000\0075\0075\0075\000\000\000\000\003N\0075\0075\000\000\0075\000\000\000\000\0075\000\000\0075\000\000\003R\000\000\0075\0075\0075\0075\0075\000\000\0075\0075\0075\0075\000\000\003V\0075\0075\0075\0075\000\000\003b\000\000\0075\0075\000\000\000\000\0075\0075\0075\003z\0075\000\000\0075\000Z\003j\003r\0075\015B\0075\0075\000\000\000\000\000\000\000\000\0075\000Z\000\000\0075\0075\015V\0075\000\000\0075\000Z\000\000\0075\015\174\000\000\0075\0075\0075\0075\000\000\0075\000\000\0075\0075\0075\015\194\000\000\000\000\0075\0075\0075\000\000\0075\000\000\0075\0075\0075\0075\016\006\000\000\0075\0075\0075\0075\000\000\0075\0075\0075\0075\0075\0075\016\"\000\000\0075\0075\0075\0075\0075\0075\0075\0075\0075\0075\0075\000Z\0075\0075\0075\0075\0075\0075\000\000\0075\0075\000\000\0075\000Z\0075\0075\0075\0075\0075\0075\000Z\000\000\0075\000\000\000\000\0075\0075\0075\0075\000\000\0075\0075\000Z\000\000\0075\0075\0075\0075\000\000\0075\0075\0075\000\000\0075\0075\000Z\0075\0075\000\000\000\000\0075\000\000\0075\0075\0075\000\000\0075\0075\000Z\0075\000\000\000\000\0075\0075\0075\0075\0075\000\000\0075\0075\000\000\0075\0075\0075\000\000\0075\0075\000\000\0075\000\000\000\000\0075\000\000\0075\0075\0075\000\000\0075\0075\0075\0075\0075\000\000\000\000\000\000\000\000\0075\0075\0075\000\000\0075\0075\0075\0075\0075\000\000\000\000\000\000\0075\0075\0075\0075\000\000\0075\0075\0075\0075\000\000\000\000\000\000\0075\0075\000\000\0075\000\000\000\000\0075\002\230\0075\001\138\000\000\000\000\002\234\0075\0075\002\238\000\000\000\000\000\000\000\000\000\000\0075\000\000\000\000\000\000\0182\0075\0075\000\000\000\000\000\000\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\000\000\003\006\003\n\000\000\003\018\000\000\000\000\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\001\233\000\000\000\000\001\233\000\000\003\"\003&\000\000\000\000\000\000\003*\001\238\003.\000\000\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\000\000\000\000\000\000\001\233\001\233\000\000\000\000\000\000\001\233\000\000\000\000\000\000\001\233\000\000\000\000\003B\000\000\000\000\001\233\000\000\003F\001\233\001\233\000\n\001\233\001\233\000\000\000\000\000\000\000\000\001\233\000\000\003N\000\000\001\233\000\000\000\000\001\233\000\000\001\233\001\233\000\000\000\000\003R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003V\000\000\000\000\000\000\000\000\000\000\003b\000\000\000\000\000\000\001\233\000\000\001\233\000\000\000\000\003z\000\000\000\000\000\000\000\000\003j\003r\000\000\001\233\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\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\238\000\000\000\000\000\000\000\000\000\000\001\233\019\026\000\000\001\233\n\237\000\000\000\000\001\233\000\000\000\000\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\000\000\003\006\003\n\000\000\003\018\000\000\001\233\000\000\001\233\000\000\000\000\003\026\000\000\003\030\019\"\001\233\001\233\000\000\001\233\001\233\001\233\000\000\003\"\003&\000\000\000\000\000\000\003*\001\238\003.\000\000\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\000\000\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\238\000\000\000\000\003B\000\000\000\000\000\000\000\000\003F\000\000\023^\000\n\000\000\000\000\000\000\000\000\002\246\000\000\000\000\002\250\003N\000\000\000\000\000\000\000\000\003\006\003\n\000\000\003\018\000\000\000\000\003R\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\003V\000\000\003\"\003&\000\000\000\000\003b\003*\001\238\003.\000\000\000\000\000\000\0032\0036\003z\000\000\003:\003>\0075\003j\003r\000\000\000\000\0075\000\000\000\242\000\000\001\002\0075\000\000\0075\000\000\000\000\000\000\003B\0075\0075\000\000\000\000\003F\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003N\000\000\000\000\000\000\000\000\0075\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\000\000\000\000\000\000\0075\000\000\000\000\000\000\0075\000\000\000\000\003V\000\000\002\230\000\000\001\138\000\000\003b\002\234\000\000\000\000\002\242\000\000\0075\0075\000\000\003z\000\000\006\134\000\000\000\000\003j\003r\000Z\000\000\000\000\0075\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\0075\003\006\012v\000\000\003\018\0075\0075\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\0075\000\000\000\000\000\000\0075\000\000\000\000\003\"\003&\000\000\000\000\000\000\003*\001\238\003.\0075\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\0075\000\000\000\000\000\000\000\000\0075\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\003Z\000\000\000\000\000\n\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\003N\002\242\000\000\000\000\000\000\000\000\0075\000\000\000\000\0075\0075\003R\000\000\0075\000\000\000\000\000\000\002\246\0075\0075\002\250\000\000\000\000\0075\003^\000\000\003\006\012f\000\000\003\018\003b\000\000\000\000\000\000\000\000\000\000\003\026\000\000\003\030\003f\000\000\000\000\000\000\000\000\003j\003r\000\000\003\"\003&\000\000\000\000\000\000\003*\001\238\003.\000\000\000\000\000\000\0032\0036\000\000\000\000\003:\003>\000\000\000\000\000\000\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\242\000\000\000\000\003B\000\000\000\000\000\000\000\000\003Z\000\000\000\000\000\n\000\000\000\000\000\000\000\000\002\246\000\000\000\000\002\250\003N\000\000\000\000\000\000\000\000\003\006\012N\000\000\003\018\000\000\000\000\003R\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\003^\000\000\003\"\003&\000\000\000\000\003b\003*\001\238\003.\000\000\000\000\000\000\0032\0036\003f\000\000\003:\003>\000\000\003j\003r\000\000\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\242\000\000\000\000\003B\000\000\000\000\000\000\000\000\003Z\000\000\000\000\000\n\000\000\000\000\000\000\000\000\002\246\000\000\000\000\002\250\003N\000\000\000\000\000\000\000\000\003\006\003J\000\000\003\018\000\000\000\000\003R\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\003^\000\000\003\"\003&\000\000\000\000\003b\003*\001\238\003.\000\000\000\000\000\000\0032\0036\003f\000\000\003:\003>\0075\003j\003r\000\000\000\000\0075\000\000\005n\000\000\005~\0075\n\229\0075\000\000\000\000\000\000\003B\0075\0075\000\000\0075\003Z\000\000\n\229\000\n\0075\000\000\005\218\000\000\005\234\0075\000\000\0075\003N\n\229\000\000\n\229\0075\0075\000\000\n\229\000\000\000\000\000\000\003R\000\000\n\229\000\000\000\000\000\000\0075\000\000\n\229\000\000\0075\n\229\000\000\003^\0075\n\229\027\022\000\000\000\000\003b\000\000\n\229\000\000\000\000\000\000\0075\0075\000\000\003f\000\000\0075\000\000\000\000\003j\003r\000Z\000\000\n\229\0075\000\000\000\000\000\000\000\000\000\000\000\000\0075\0075\0075\000\000\000\000\006\198\000\000\0075\0075\000\000\000Z\000\000\000\000\0075\000\000\000\000\000\000\0075\000\000\000\000\000\000\0075\0075\n\229\000\000\000\000\n\229\0075\0075\000\000\000\000\000\000\0075\000\000\000\000\000\000\000\000\0075\000\000\n\229\000\000\0075\0075\000\000\n\229\n\229\n\229\0075\n\229\n\229\000\000\n\229\0075\000\000\000\000\000\000\000\000\000\000\n\229\000\000\000\000\n\229\0075\000\000\000\000\000\000\000\000\0075\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\229\000\000\000\000\000\000\0075\n\229\n\229\0075\0075\000\000\000\000\0075\000\000\000\000\000\000\000\000\0075\0075\002\230\000\000\001\138\0075\000\000\002\254\0075\000\000\003\002\0075\0075\000\000\000\000\0075\000\000\000\000\000\000\000\000\0075\0075\000\000\000\000\000\000\0075\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\000\000\003\022\b\006\000\000\003\018\000\000\b\026\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\014\003&\000\000\000\000\000\000\t\018\001\238\003.\000\161\000\000\000\000\t\026\t\030\000\000\000\000\t\"\003>\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\242\000\000\000\000\000\000\000\000\000\000\000\000\t&\000\161\000\161\000\000\000\000\t*\000\000\000\000\000\n\002\246\000\000\000\000\002\250\000\000\000\000\000\000\003\238\t2\003\006\b&\000\000\003\018\000\161\000\161\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\161\000\000\000\000\003\246\000\000\004\006\000\000\003\"\003&\tB\000\000\000\000\003*\001\238\003.\tJ\000\000\000\000\0032\0036\000\000\000\000\003:\003>\tN\000\000\000\000\000\000\000\000\tV\003r\000\000\000\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\003Z\000\000\000\000\000\n\000\000\000\000\012\022\000\000\000\000\000\000\000\000\000\000\003N\000\000\000\000\000\000\0051\000\000\0051\000\000\000\000\0051\000\000\003R\0051\000\000\000\000\000\161\000\000\000\000\000\000\000\000\000\000\000\000\003\254\000\000\003^\000\000\000\000\000\000\0051\000\000\003b\0051\000\000\000\000\000\000\000\000\000\161\0051\0051\003f\0051\000\000\000\000\000\161\003j\003r\000\000\0051\000\000\0051\000\000\000\161\000\161\000\000\000\000\000\000\000\000\000\000\0051\0051\000\000\000\000\000\000\0051\0051\0051\000\000\000\000\000\000\0051\0051\000\000\000\000\0051\0051\000\000\002\230\000\000\001\138\000\000\000\000\002\234\000\000\000\000\002\242\000\000\000\000\000\000\000\000\000\000\000\000\0051\000\000\000\000\000\000\000\000\0051\000\000\000\000\0051\002\246\000\000\000\000\002\250\000\000\000\000\000\000\000\000\0051\003\006\018\030\000\000\003\018\000\000\000\000\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\"\003&\0051\000\000\000\000\003*\001\238\003.\0051\000\000\000\000\0032\0036\000\000\000\000\003:\003>\0051\000\000\000\000\000\000\000\000\0051\0051\000\000\000\000\000\000\000\000\026.\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\003Z\000\000\0262\000\n\000\000\000\000\000\000\000\000\000\000\028\178\000\000\000\000\003N\0266\000\000\026:\rQ\rQ\000\000\026>\000\000\000\000\000\000\003R\000\000\026B\000\000\000\000\000\000\000\000\000\000\026F\000\000\000\000\026N\000\000\003^\000\000\026R\000\000\000\000\000\000\003b\000\000\026V\000\000\000\000\000\000\000\000\000\000\000\000\003f\000\000\000\000\000\000\026.\003j\003r\rQ\000\000\026Z\000\000\000\000\000\000\000\000\000\000\000\000\0262\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0266\000\000\026:\000\000\000\000\000\000\026>\000\000\000\000\r%\000\000\rQ\026B\026^\000\000\000\000\026b\000\000\026F\000\000\000\000\026N\000\000\000\000\000\000\026R\000\000\027\190\000\000\026f\000\000\026V\000\000\000\000\026j\000\n\026n\000\000\026r\026v\000\000\026z\029.\028B\000\000\r%\000\000\026Z\026~\000\000\000\000\026\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\026\134\000\000\000\000\000\000\0075\026\138\026\142\rQ\000\000\0075\r%\000\000\026^\000\226\0075\026b\0075\000\000\000\000\000\000\000\000\0075\0075\000\000\000\000\000\000\000\000\000\000\026f\000\000\000\000\000\000\000\000\026j\000\n\026n\0075\026r\026v\000\000\026z\0075\0075\0075\000\000\000\246\0075\026~\0075\000\000\026\130\000\000\001:\0075\0075\0075\000\000\0075\0075\000\000\0075\0075\0075\000\000\000\000\026\134\001V\0075\000\000\0075\026\138\026\142\r%\0075\0075\0075\0075\000\000\007\206\000\000\000\000\0075\000\000\000Z\000\000\005^\0075\0075\0075\0075\0075\000\000\0075\0075\0075\0075\005r\0075\005\202\0075\0075\0075\000\000\000\000\0075\0075\0075\0075\0075\000\000\0075\0075\0075\0075\0075\000Z\000\000\005\222\0075\000\000\0075\000\000\000Z\000\000\000\000\0075\0075\0075\000\000\000\000\0075\012\170\0075\0075\0075\0075\000Z\0075\000\000\0075\0075\0075\0075\0075\000\000\0075\0075\0075\0075\0075\000\000\006\"\0075\0075\0075\000Z\0075\0075\0075\0075\0075\000\000\0075\0075\0075\000\000\000Z\0075\000Z\0075\000\000\0075\0075\0075\0075\000\000\0075\0075\0075\0075\0075\006>\0075\0075\0075\0075\0075\000Z\0075\0075\0075\000\000\0075\0075\000\000\0075\0075\0075\000\000\0075\000\000\000\000\000\000\000\000\0075\0075\000\000\0075\0075\0075\0075\0075\0075\000\000\0075\0075\0075\0075\0075\0075\0075\000Z\0075\0075\0075\0075\0075\000\000\000\000\0075\0075\000\000\000\000\0075\000\000\000\000\000\000\000\000\0075\0075\000\000\0075\0075\0075\0075\0075\000\000\000\000\0075\0075\000\000\000Z\0075\000\000\0075\000\000\0075\0075\0075\0075\0075\0075\0075\0075\000\000\0075\000\000\000\000\0075\0075\0075\0075\000\000\0075\000\000\0075\000\000\0075\0075\000\000\0075\0075\0075\000\000\0075\000\000\000\000\000\000\000\000\0075\0075\000\000\000\000\0075\0075\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0075\000\000\000\000\000\000\000\000\0075\000\000\000\000\0075\000\000\000\000\0075\0075\019N\000\000\0075\019V\000\000\000\000\000\000\0075\0075\000\000\000\000\000\000\0075\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0075\019f\019n\0075\0075\000\000\002=\0075\000\000\000\000\002=\000\000\0075\0075\000\000\000\000\019v\0075\000\000\002=\002=\000\000\019~\019\134\000\000\000\000\000\000\0015\002=\000\000\0015\000\000\019\142\000\000\000\000\019\150\000\000\019\158\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\003\230\004\014\000\000\000\000\000\000\0015\000\000\000\000\000\000\0015\000\000\019\166\000\000\002=\000\000\003\238\000\000\000\000\0015\0015\000\000\0015\0015\000\000\002=\000\000\000\000\0015\000\000\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\0015\000\000\000\000\000R\000V\000f\000\194\000\000\000\198\000\000\000\202\000\210\000\218\0016\019\174\001F\001N\002=\001v\000\000\001~\019\182\001\134\002j\002r\002v\004\030\000\000\0015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002=\0015\002=\002~\000\000\000\000\000\000\000\000\000\000\002=\002=\000\000\019\190\019\198\002=\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\004&\000\000\000\000\0015\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\000\002\150\001\029\000\000\000\000\001\029\000\000\031\222\000\000\000\000\000\000\000\000\000\000\0015\000\000\0015\002\154\000\000\000\000\000\000\031\210\007\022\0015\0015\000\000\0015\004.\0015\001\029\001\029\000\000\000\000\000\000\001\029\000\000\000\000\000\000\001\029\007\026\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001\029\001\029\000\000\001\029\001\029\000\000\000\000\000\000\001\025\001\029\000\000\001\025\000\000\001\029\000\000\000\000\003\246\000\000\004\006\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\025\001\025\000\000\000\000\000\000\001\025\000\000\000\000\000\000\001\025\000\000\001\029\000\000\001\029\000\000\003\238\000\000\000\000\001\025\001\025\000\000\001\025\001\025\000\000\001\029\n-\000\000\001\025\000\000\000\000\000\000\001\025\000\000\000\000\003\246\000\000\004\006\001\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\001\029\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\000\001\025\000\000\001\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\001\025\001\029\000\000\000\000\000\000\000\000\000\000\000\000\001\029\001\029\000\000\001\029\001\029\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\025\000\000\000\000\001\025\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\000\000\000\001\017\000\000\000\000\001\017\000\000\000\000\000\000\000\000\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\001\017\001\017\000\000\000\000\000\000\001\017\000\000\000\000\000\000\001\017\000\000\000\000\000\000\000\000\000\000\001\017\000\000\000\000\001\017\001\017\000\000\001\017\001\017\000\000\000\000\000\000\004\134\001\017\000\000\001=\000\000\001\017\000\000\000\000\003\246\000\000\001\017\001\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\230\004\014\000\000\000\000\000\000\001=\000\000\000\000\000\000\001=\000\000\001\017\000\000\001\017\000\000\003\238\000\000\000\000\001=\001=\000\000\001=\004\142\000\000\001\017\000\000\000\000\001=\000\000\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\001=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000\000\000\000\001\017\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\000\004\030\000\000\001=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\001=\001\017\000\000\000\000\000\000\000\000\000\000\000\000\001\017\001\017\000\000\001\017\001\017\001\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004&\000\000\000\000\001=\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\000\000\000\004\134\000\000\000\000\0011\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\001=\001=\000\000\004\150\004.\001=\003\230\004\014\000\000\000\000\000\000\0011\000\000\000\000\000\000\0011\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\0011\0011\000\000\0011\0011\000\000\000\000\000\000\001)\0011\000\000\001)\000\000\004\022\000\000\000\000\003\246\000\000\004\006\0011\000\000\000\000\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\230\004\014\000\000\000\000\000\000\001)\000\000\000\000\000\000\001)\000\000\004\030\000\000\0011\000\000\003\238\000\000\000\000\001)\001)\000\000\001)\001)\000\000\0011\000\000\000\000\001)\000\000\000\000\000\000\001)\000\000\000\000\003\246\000\000\004\006\001)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004&\000\000\000\000\0011\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\000\004\030\000\000\001)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0011\001)\0011\000\000\000\000\000\000\000\000\000\000\000\000\0011\0011\000\000\0011\004.\0011\000\000\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\003\254\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\001\021\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\001)\001)\000\000\001)\001)\001)\001\021\001\021\000\000\000\000\000\000\001\021\000\000\000\000\000\000\001\021\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\001\021\001\021\000\000\001\021\001\021\000\000\000\000\000\000\001!\001\021\000\000\001!\000\000\001\021\000\000\000\000\003\246\000\000\001\021\001\021\000\000\000\000\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\230\004\014\000\000\000\000\000\000\001!\000\000\000\000\000\000\001!\000\000\001\021\000\000\001\021\000\000\003\238\000\000\000\000\001!\001!\000\000\001!\001!\000\000\001\021\000\000\000\000\001!\000\000\000\000\000\000\001!\000\000\000\000\003\246\000\000\004\006\001!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\001\021\000\000\000\000\000\000\003\254\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\001\021\001!\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\000\000\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\003\254\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\000\000\001!\000\000\001!\000\000\000\000\000\000\000\000\000\000\000\000\001!\001!\000\000\001!\001!\001!\003\230\004\014\000\000\000\000\000\000\001%\000\000\000\000\000\000\001%\000\000\000\000\000\000\000\000\000\000\003\238\000\000\000\000\001%\001%\000\000\001%\001%\000\000\000\000\000\000\004\134\001%\000\000\0019\000\000\001%\000\000\000\000\003\246\000\000\004\006\001%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\230\004\014\000\153\000\000\000\000\0019\000\000\000\000\000\000\0019\000\000\004\030\000\000\001%\000\000\003\238\000\000\000\000\0019\0019\000\000\0019\004\142\000\000\001%\000\000\000\000\0019\000\153\000\153\000\000\004\022\000\000\000\000\003\246\000\000\004\006\0019\000\000\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\000\000\153\000\153\001%\000\000\000\000\001%\000\000\000\000\000\000\003\254\000\153\000\000\000\000\003\246\004\030\000\153\0019\004\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001%\0019\001%\000\000\000\000\000\000\000\000\000\000\000\000\001%\001%\000\000\001%\001%\001%\000\000\000\153\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004&\000\000\000\000\0019\003\238\000\000\000\000\003\254\000\000\000\000\000\197\004\142\000\000\001-\000\000\000\000\001-\000\000\000\000\000\000\004\022\000\000\000\000\003\246\0019\004\006\0019\000\000\000\153\000\000\000\000\000\000\000\000\0019\0019\003\254\0019\004.\0019\003\230\004\014\000\000\000\000\000\000\001-\000\000\000\000\000\000\001-\000\153\000\000\000\000\004\030\000\000\003\238\000\000\000\153\001-\001-\000\000\001-\001-\000\000\000\000\000\153\000\153\001-\000\000\000\000\000\000\004\022\000\000\029\026\003\246\029\"\004\006\001-\000\000\000\000\000\000\000\000\000\000\000\000\029*\000\000\000\000\000\000\000\000\029J\000\000\000\000\000\000\004&\000\000\000\000\0262\000\000\000\000\000\000\003\254\000\000\000\000\004\030\000\000\001-\000\000\0266\000\000\026:\000\000\000\000\000\000\026>\000\197\000\000\001-\000\000\000\000\026B\000\000\000\197\000\000\000\000\000\000\026F\000\000\000\000\026N\004\150\004.\000\000\026R\000\000\000\000\000\000\000\000\000\000\026V\000\000\000\000\000\000\000\000\004&\000\000\000\000\001-\000\000\000\000\000\000\003\254\000\000\000\000\000\000\026Z\029R\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\001-\001-\000\000\001-\001-\001-\000\000\000\000\000\000\026^\000\000\000\000\026b\000\000\000\000\002\230\000\000\001\138\000\000\000\000\b\030\000\000\000\000\b\"\000\000\026f\000\000\000\000\000\000\000\000\026j\000\n\026n\000\000\026r\026v\000\000\026z\017i\002\246\000\000\017i\000\000\000\000\026~\000\000\000\000\026\130\b>\bJ\000\000\000\000\000\000\b^\000\000\000\000\000\000\000\000\003\026\000\000\003\030\000\000\026\134\000\000\017i\017i\000\000\026\138\026\142\b\130\003&\000\000\tn\000\000\b\142\001\238\003.\000\000\000\000\017i\b\150\b\154\000\000\017i\b\158\017i\017i\000\000\000\000\tv\000\000\000\000\nN\000\000\000\000\017i\000\000\000\000\017i\000\000\017i\b\162\b\166\000\000\000\000\000\000\000\000\b\170\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\206\000\000\000\000\000\000\nZ\000\000\b\214\000\000\002\230\000\000\001\138\000\000\000\000\018\022\000\000\b\218\018\026\000\000\000\000\000\000\b\226\003r\000\000\000\000\017i\017i\000\000\017i\000\000\n^\000\000\017i\002\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nf\018\134\018r\000\000\000\000\017i\019\206\000\000\000\000\017i\017i\003\026\000\000\003\030\000\000\000\000\017i\000\000\000\000\000\000\017i\017i\018\138\003&\000\000\000\000\000\000\018\142\001\238\003.\000\000\000\000\000\000\018\146\018\150\000\000\026.\018\154\000\000\000\000\000\000\000\000\000\000\000\000\026.\000\000\000\000\000\000\0262\000\000\000\000\000\000\000\000\000\000\b\162\018\158\0262\000\000\000\000\0266\018\162\026:\000\000\000\n\000\000\026>\000\000\0266\000\000\026:\000\000\026B\018\170\026>\000\000\000\000\000\000\026F\000\000\026B\026N\000\000\000\000\000\000\026R\026F\000\000\000\000\026N\000\000\026V\000\000\026R\000\000\000\000\000\000\018\174\000\000\026V\000\000\000\000\027\186\018\182\000\000\000\000\000\000\026Z\000\000\000\000\028\138\000\000\018\186\000\000\000\000\026Z\000\000\018\194\003r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r%\000\000\026^\000\000\000\000\026b\000\000\000\000\r%\000\000\026^\000\000\000\000\026b\000\000\000\000\000\000\000\000\026f\000\000\000\000\000\000\000\000\026j\000\n\026n\026f\026r\026v\000\000\026z\026j\000\n\026n\000\000\026r\026v\026~\026z\000\000\026\130\000\000\026.\000\000\000\000\026~\000\000\000\000\026\130\000\000\000\000\000\000\000\000\000\000\0262\026\134\000\000\000\000\000\000\000\000\026\138\026\142\r%\026\134\000\000\0266\000\000\026:\026\138\026\142\r%\026>\000\000\000\000\000\000\000\000\000\000\026B\000\000\000\000\000\000\000\000\000\000\026F\000\000\000\000\026N\000\000\000\000\000\000\026R\t\161\000\000\000\000\000\000\000\000\026V\000\000\000\000\000\000\000\000\000\000\000\000\t\161\000\000\000\000\000\000\028\242\000\000\000\000\000\000\000\000\026Z\000\000\t\161\000\000\t\161\000\000\000\000\000\000\t\161\000\000\000\000\000\000\000\000\000\000\t\161\000\000\000\000\000\000\000\000\000\000\t\161\000\000\000\000\t\161\000\000\000\000\000\000\t\161\000\000\r%\000\000\026^\000\000\t\161\026b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026f\000\000\t\161\029R\000\000\026j\000\n\026n\000\000\026r\026v\000\000\026z\000\000\000\000\000\000\000\000\000\000\000\000\026~\000\000\000\000\026\130\000\000\000\000\000\000\000\000\000\000\b%\000\000\000\000\000\000\000\000\t\161\000\000\000\000\t\161\026\134\000\000\000\000\b%\000\000\026\138\026\142\r%\000\000\000\000\000\000\000\000\t\161\000\000\b%\000\000\b%\t\161\t\161\t\161\b%\t\161\t\161\000\000\t\161\000\000\b%\000\000\000\000\000\000\000\000\t\161\b%\000\000\t\161\b%\000\000\000\000\000\000\b%\027\158\000\000\000\000\000\000\000\000\b%\000\000\000\000\000\000\t\161\000\000\000\000\0262\000\000\t\161\t\161\030Z\000\000\000\000\000\000\000\000\b%\000\000\0266\000\000\026:\000\000\000\000\000\000\026>\000\000\000\000\000\000\000\000\000\000\026B\000\000\000\000\000\000\000\000\000\000\026F\000\000\000\000\026N\000\000\000\000\000\000\026R\000\000\000\000\000\000\b%\000\000\026V\b%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b%\000\000\026Z\027\182\000\000\b%\b%\b%\000\000\b%\b%\000\000\b%\000\000\000\000\0262\000\000\000\000\000\000\b%\000\000\000\000\b%\000\000\000\000\000\000\0266\000\000\026:\000\000\000\000\000\000\026>\026^\000\000\000\000\026b\b%\026B\000\000\000\000\000\000\b%\b%\026F\000\000\000\000\026N\000\000\026f\000\000\026R\026.\000\000\026j\000\n\026n\026V\026r\026v\000\000\026z\000\000\000\000\0262\000\000\000\000\000\000\026~\000\000\000\000\026\130\000\000\026Z\000\000\0266\000\000\026:\000\000\000\000\000\000\026>\000\000\000\000\000\000\000\000\026\134\026B\000\000\000\000\000\000\026\138\026\142\026F\000\000\000\000\026N\000\000\000\000\000\000\026R\000\000\000\000\000\000\026^\000\000\026V\026b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026f\000\000\028n\028\134\000\000\026j\000\n\026n\000\000\026r\026v\000\000\026z\000\000\000\000\0262\000\000\000\000\000\000\026~\000\000\000\000\026\130\000\000\000\000\000\000\0266\000\000\026:\000\000\000\000\000\000\026>\026^\000\000\000\000\026b\026\134\026B\000\000\000\000\000\000\026\138\026\142\026F\000\000\000\000\026N\000\000\026f\000\000\026R\028\238\000\000\026j\000\n\026n\026V\026r\026v\000\000\026z\000\000\000\000\0262\000\000\000\000\000\000\026~\000\000\000\000\026\130\000\000\026Z\000\000\0266\000\000\026:\000\000\000\000\000\000\026>\000\000\000\000\000\000\000\000\026\134\026B\000\000\000\000\000\000\026\138\026\142\026F\000\000\000\000\026N\000\000\000\000\000\000\026R\000\000\000\000\000\000\026^\000\000\026V\026b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026f\000\000\026Z\026.\000\000\026j\000\n\026n\000\000\026r\026v\000\000\026z\000\000\000\000\0262\000\000\000\000\000\000\026~\000\000\000\000\026\130\000\000\000\000\000\000\0266\000\000\026:\000\000\000\000\000\000\026>\026^\000\000\000\000\026b\026\134\026B\000\000\000\000\000\000\026\138\026\142\026F\000\000\000\000\026N\000\000\026f\000\000\026R\026.\000\000\026j\000\n\026n\026V\026r\026v\000\000\026z\000\000\000\000\0262\000\000\000\000\000\000\026~\000\000\000\000\026\130\000\000\030&\000\000\0266\000\000\026:\000\000\000\000\000\000\026>\000\000\000\000\000\000\000\000\026\134\026B\000\000\000\000\000\000\026\138\026\142\000\000\000\000\000\000\026N\000\000\000\000\000\000\026R\000\000\000\000\000\000\026^\000\000\026V\026b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026f\000\000\026Z\000\000\000\000\026j\000\n\026n\000\000\026r\026v\000\000\026z\000\000\000\000\000\000\000\000\000\000\000\000\026~\000\000\000\000\026\130\000\000\000\000\017\129\000\000\000\000\017\129\000\000\000\000\000\000\000\000\026^\000\000\000\000\026b\026\134\000\000\000\000\000\000\000\000\026\138\026\142\000\000\000\000\000\000\000\000\000\000\026f\000\000\017\129\017\129\000\000\026j\030R\026n\000\000\026r\026v\000\000\026z\000\000\000\000\000\000\000\000\017\129\000\000\026~\000\000\017\129\026\130\017\129\017\129\000\249\000\000\000\000\000\249\000\000\000\000\b:\000\000\017\129\000\000\000\000\017\129\026\134\017\129\000\000\000\000\000\000\026\138\026\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\230\004\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\017\129\003\238\000\000\000\000\000\000\000\249\000\000\000\249\000\249\000\000\000\000\000\225\000\000\000\000\000\225\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\225\000\225\000\000\017\129\017\129\000\000\017\129\000\000\000\000\000\000\017\129\000\000\004\030\000\000\000\000\003\238\000\000\000\000\000\000\000\225\000\000\000\225\000\225\000\221\017\129\000\000\000\221\000\000\017\129\017\129\000\000\000\225\000\000\000\000\003\246\017\129\004\006\000\000\000\000\017\129\017\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\221\000\221\000\000\004&\000\000\000\000\000\249\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\225\003\238\000\000\000\000\000\000\000\221\000\000\000\221\000\221\000\000\000\249\000\000\000\000\000\000\000\249\000\249\000\000\000\221\000\000\000\000\003\246\000\000\004\006\000\000\000\000\000\249\004.\000\000\000\000\000\000\000\000\000\000\000\000\000\213\000\000\000\000\000\213\000\000\000\000\000\000\000\225\000\000\000\000\000\225\000\000\000\000\000\000\003\254\000\000\000\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\213\000\213\000\225\000\000\000\000\000\000\000\225\000\225\000\000\000\000\000\000\000\000\000\000\004\134\000\000\000\213\001\001\000\225\000\225\000\213\000\000\000\213\000\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\221\000\213\000\000\000\221\003\246\000\000\000\213\003\254\000\000\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\221\000\000\000\000\003\238\000\221\000\221\000\000\001\001\000\000\001\001\004\142\000\000\000\213\000\000\000\000\000\221\000\221\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\134\000\000\000\000\000\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\030\000\213\000\000\000\000\000\213\000\000\000\000\000\000\003\254\000\000\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\213\000\000\000\000\003\238\000\213\000\213\000\000\000\245\000\000\000\245\000\245\000\237\000\000\000\000\000\237\000\213\000\213\000\000\004&\004\022\000\000\001\001\003\246\000\000\004\006\003\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\230\004\014\001\001\000\000\000\000\000\000\001\001\001\001\000\000\000\000\000\000\000\000\000\000\000\000\004\030\003\238\000\000\004\150\004.\000\237\000\000\000\237\000\237\000\000\000\217\000\000\000\000\000\217\000\000\000\000\000\000\000\237\000\000\000\000\003\246\000\000\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\217\000\217\000\000\000\000\004&\000\000\000\000\000\245\000\000\000\000\000\000\003\254\000\000\004\030\000\000\000\217\000\000\000\000\000\000\000\217\000\229\000\217\000\217\000\229\000\000\000\245\000\000\000\000\000\000\000\245\000\245\000\217\000\000\000\000\003\246\000\000\000\217\000\000\000\000\000\000\000\245\004.\000\000\000\000\000\000\000\000\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\237\000\000\000\000\000\237\000\000\000\000\000\000\003\254\003\238\000\000\000\217\000\000\000\229\000\000\000\229\000\229\000\000\000\233\000\000\000\000\000\233\000\237\000\000\000\000\000\229\000\237\000\237\003\246\000\000\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\237\000\237\000\000\000\000\000\000\000\000\000\000\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\217\000\000\000\000\000\217\000\000\000\000\000\229\003\254\003\238\000\000\000\000\000\000\000\233\004\134\000\233\000\233\000\253\000\000\000\000\000\000\000\000\000\217\000\000\000\000\000\233\000\217\000\217\003\246\000\000\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\217\000\217\000\000\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\229\000\000\000\000\000\229\000\000\000\000\000\000\003\254\003\238\000\000\004\030\000\000\000\253\000\000\000\253\004\142\000\000\000\241\000\000\000\000\000\241\000\229\000\000\000\000\004\022\000\229\000\229\003\246\000\000\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\229\000\229\000\000\000\000\000\000\000\000\000\000\003\230\004\014\000\000\000\000\000\000\000\000\000\000\000\233\000\000\000\000\000\233\000\000\000\000\004\030\003\254\003\238\000\000\000\000\000\000\000\241\004\134\000\241\000\241\000\000\000\177\000\000\000\000\000\000\000\233\000\000\000\000\004\022\000\233\000\233\003\246\000\000\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\233\000\233\000\000\003\230\004\014\000\000\000\000\003\230\004\014\000\000\004&\000\000\000\000\000\253\000\000\000\000\000\000\003\254\003\238\000\000\004\030\000\000\003\238\000\000\000\185\000\185\000\000\000\157\000\177\000\177\000\000\000\253\000\000\000\000\004\022\000\253\000\253\003\246\000\177\004\006\000\000\003\246\000\000\004\006\000\000\000\000\000\253\004.\000\000\000\000\000\000\000\000\000\169\000\157\000\157\000\000\000\000\000\000\000\000\000\000\004&\000\000\000\000\000\241\000\000\000\000\004\030\003\254\000\157\000\000\004\030\000\000\000\000\000\000\000\157\000\157\000\000\000\000\003\230\004\014\000\000\000\241\000\000\000\000\000\157\000\241\000\241\003\246\000\000\000\157\000\000\000\000\000\000\003\238\000\000\000\000\000\241\000\241\000\000\000\169\000\169\000\000\000\000\000\000\000\000\000\000\004&\000\000\000\000\000\169\000\177\000\000\003\246\003\254\004\006\000\000\000\157\003\254\000\173\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\177\000\000\000\000\000\185\000\000\000\000\000\000\000\177\000\000\000\000\000\169\000\185\004.\003\230\004\014\000\177\000\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\000\000\000\000\003\238\000\000\000\000\000\000\003\254\004\134\000\173\000\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\173\000\000\000\157\003\246\000\000\004\006\000\169\000\000\000\000\000\157\000\000\000\000\000\000\003\254\000\181\003\230\004\014\000\157\000\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\169\000\000\000\000\003\238\000\000\004\030\000\000\000\169\000\000\000\193\004\142\000\000\000\000\003\230\004\014\000\169\000\169\000\000\000\000\004\022\000\000\000\000\003\246\000\000\004\006\000\000\000\000\000\000\003\238\000\000\000\000\000\000\000\000\000\000\000\181\000\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\022\000\173\000\000\003\246\000\000\004\006\000\000\004\030\003\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\173\000\000\000\000\000\000\000\000\000\000\000\000\000\173\000\000\000\000\004\030\000\000\000\000\000\000\000\000\000\173\000\173\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\003\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\193\000\000\000\000\000\000\004&\000\000\000\000\000\193\000\000\000\000\000\000\003\254\000\000\000\000\000\000\000\193\004.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\181\000\000\000\000\000\000\000\000\000\000\000\000\000\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\181\000\181")) let lhs = - (16, "\000\012\000\011\000\n\000\t\000\b\000\007\000\006\000\005\000\004\000\003\000\002\000\001\000\000\001-\001-\001-\001,\001,\001,\001,\001+\001+\001+\001+\001+\001+\001+\001+\001+\001+\001+\001+\001+\001+\001+\001*\001*\001*\001*\001*\001*\001*\001*\001*\001*\001*\001*\001*\001*\001*\001)\001)\001)\001)\001)\001)\001)\001)\001)\001)\001)\001)\001)\001)\001)\001(\001(\001(\001(\001(\001(\001(\001(\001(\001(\001(\001(\001(\001(\001(\001'\001'\001'\001'\001'\001'\001'\001'\001'\001'\001'\001'\001'\001'\001&\001&\001&\001&\001%\001$\001$\001$\001#\001#\001#\001\"\001\"\001\"\001!\001!\001!\001 \001\031\001\030\001\029\001\029\001\028\001\028\001\027\001\027\001\026\001\026\001\025\001\025\001\024\001\023\001\022\001\021\001\020\001\019\001\018\001\017\001\016\001\015\001\014\001\r\001\012\001\011\001\n\001\t\001\t\001\b\001\b\001\007\001\007\001\006\001\006\001\005\001\005\001\005\001\005\001\004\001\004\001\004\001\004\001\003\001\003\001\003\001\003\001\002\001\002\001\002\001\002\001\001\001\001\001\001\001\001\001\000\001\000\001\000\001\000\000\255\000\255\000\255\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\253\000\252\000\252\000\252\000\252\000\252\000\251\000\251\000\250\000\249\000\248\000\248\000\248\000\248\000\247\000\247\000\247\000\247\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\245\000\244\000\244\000\243\000\243\000\243\000\243\000\243\000\243\000\243\000\243\000\242\000\242\000\241\000\241\000\241\000\240\000\239\000\238\000\238\000\237\000\237\000\236\000\235\000\235\000\234\000\234\000\233\000\233\000\232\000\232\000\231\000\230\000\229\000\229\000\228\000\228\000\227\000\227\000\226\000\226\000\225\000\225\000\224\000\223\000\223\000\222\000\222\000\222\000\222\000\222\000\222\000\221\000\221\000\221\000\220\000\219\000\218\000\218\000\218\000\218\000\217\000\217\000\216\000\215\000\215\000\215\000\214\000\214\000\214\000\214\000\214\000\213\000\213\000\213\000\213\000\212\000\212\000\212\000\212\000\211\000\211\000\211\000\211\000\210\000\209\000\209\000\208\000\208\000\208\000\207\000\206\000\206\000\206\000\205\000\204\000\204\000\203\000\203\000\203\000\202\000\202\000\202\000\201\000\201\000\201\000\201\000\200\000\200\000\199\000\199\000\199\000\199\000\199\000\199\000\198\000\198\000\198\000\197\000\197\000\197\000\197\000\197\000\197\000\196\000\195\000\194\000\194\000\193\000\193\000\192\000\192\000\191\000\191\000\190\000\190\000\189\000\189\000\188\000\188\000\188\000\188\000\188\000\188\000\188\000\188\000\187\000\186\000\185\000\185\000\184\000\184\000\183\000\183\000\182\000\182\000\181\000\181\000\180\000\180\000\179\000\179\000\178\000\178\000\177\000\177\000\176\000\176\000\175\000\175\000\174\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\166\000\166\000\165\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\154\000\153\000\153\000\152\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\150\000\150\000\150\000\150\000\149\000\148\000\147\000\146\000\145\000\144\000\143\000\142\000\141\000\140\000\139\000\138\000\137\000\137\000\137\000\136\000\136\000\136\000\135\000\135\000\135\000\135\000\134\000\133\000\132\000\131\000\130\000\129\000\128\000\127\000~\000}\000}\000|\000|\000|\000{\000{\000z\000z\000z\000y\000y\000y\000x\000w\000w\000w\000v\000u\000u\000t\000t\000t\000t\000t\000t\000t\000s\000s\000s\000s\000s\000s\000s\000r\000r\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\000m\000m\000l\000l\000k\000k\000j\000j\000i\000i\000h\000h\000g\000g\000g\000g\000g\000g\000g\000g\000g\000g\000g\000g\000g\000g\000g\000g\000g\000g\000g\000g\000f\000f\000e\000e\000d\000d\000c\000c\000b\000b\000a\000a\000`\000`\000_\000_\000_\000_\000_\000^\000^\000]\000]\000]\000]\000\\\000[\000Z\000Z\000Z\000Y\000Y\000Y\000X\000X\000X\000X\000X\000X\000W\000W\000W\000W\000W\000W\000W\000W\000V\000V\000V\000V\000V\000V\000V\000V\000U\000U\000U\000U\000U\000U\000U\000U\000T\000T\000T\000T\000T\000T\000T\000T\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000P\000P\000P\000P\000P\000P\000P\000P\000P\000P\000P\000P\000P\000P\000O\000O\000O\000O\000O\000N\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000L\000L\000L\000K\000J\000I\000H\000H\000G\000G\000F\000E\000E\000D\000D\000D\000C\000C\000B\000B\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:\0009\0009\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!\000 \000\031\000\031\000\031\000\031\000\030\000\030\000\030\000\029\000\029\000\028\000\028\000\028\000\027\000\027\000\027\000\026\000\026\000\026\000\026\000\026\000\026\000\026\000\025\000\025\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\023\000\023\000\023\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\021\000\021\000\021\000\021\000\021\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\016\000\016\000\015\000\014\000\014\000\014\000\014\000\014\000\r") + (16, "\000\012\000\011\000\n\000\t\000\b\000\007\000\006\000\005\000\004\000\003\000\002\000\001\000\000\0012\0012\0012\0011\0011\0011\0011\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\001/\001/\001/\001/\001/\001/\001/\001/\001/\001/\001/\001/\001/\001/\001/\001.\001.\001.\001.\001.\001.\001.\001.\001.\001.\001.\001.\001.\001.\001.\001-\001-\001-\001-\001-\001-\001-\001-\001-\001-\001-\001-\001-\001-\001-\001,\001,\001,\001,\001,\001,\001,\001,\001,\001,\001,\001,\001,\001,\001+\001+\001+\001+\001*\001)\001)\001)\001(\001(\001(\001'\001'\001'\001&\001&\001&\001%\001$\001#\001\"\001\"\001!\001!\001 \001 \001\031\001\031\001\030\001\030\001\029\001\028\001\027\001\026\001\025\001\024\001\023\001\022\001\021\001\020\001\019\001\018\001\017\001\016\001\015\001\014\001\014\001\r\001\r\001\012\001\012\001\011\001\011\001\n\001\n\001\n\001\n\001\t\001\t\001\t\001\t\001\b\001\b\001\b\001\b\001\007\001\007\001\007\001\007\001\006\001\006\001\006\001\006\001\005\001\005\001\005\001\005\001\004\001\004\001\004\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\002\001\001\001\000\001\000\001\000\001\000\001\000\000\255\000\255\000\254\000\253\000\252\000\252\000\252\000\252\000\251\000\251\000\251\000\251\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\249\000\248\000\248\000\247\000\247\000\247\000\247\000\247\000\247\000\247\000\247\000\246\000\246\000\245\000\245\000\245\000\244\000\243\000\242\000\242\000\241\000\241\000\240\000\239\000\238\000\238\000\237\000\237\000\236\000\236\000\235\000\235\000\234\000\233\000\232\000\232\000\231\000\231\000\230\000\230\000\229\000\229\000\228\000\228\000\227\000\226\000\226\000\225\000\225\000\225\000\225\000\225\000\225\000\224\000\224\000\224\000\223\000\222\000\221\000\221\000\221\000\221\000\220\000\220\000\219\000\218\000\218\000\218\000\217\000\217\000\217\000\217\000\217\000\216\000\216\000\216\000\216\000\215\000\215\000\215\000\215\000\214\000\214\000\214\000\214\000\213\000\212\000\212\000\211\000\211\000\211\000\210\000\209\000\209\000\209\000\208\000\207\000\207\000\206\000\206\000\206\000\205\000\205\000\205\000\204\000\204\000\204\000\204\000\203\000\203\000\202\000\202\000\202\000\202\000\202\000\202\000\201\000\201\000\201\000\200\000\200\000\200\000\200\000\200\000\200\000\199\000\198\000\197\000\197\000\196\000\196\000\195\000\195\000\194\000\194\000\193\000\193\000\192\000\192\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\190\000\189\000\188\000\188\000\187\000\187\000\186\000\186\000\185\000\185\000\184\000\184\000\183\000\183\000\182\000\182\000\181\000\181\000\180\000\180\000\179\000\179\000\178\000\178\000\177\000\177\000\176\000\176\000\175\000\175\000\174\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\166\000\166\000\165\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\156\000\155\000\155\000\154\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\152\000\152\000\152\000\152\000\151\000\150\000\149\000\148\000\147\000\146\000\145\000\144\000\143\000\142\000\141\000\140\000\139\000\139\000\139\000\138\000\138\000\138\000\137\000\137\000\137\000\137\000\136\000\135\000\134\000\133\000\132\000\131\000\130\000\129\000\128\000\127\000\127\000~\000~\000~\000}\000}\000|\000|\000|\000{\000{\000{\000z\000y\000y\000y\000x\000w\000w\000v\000v\000v\000v\000v\000v\000v\000u\000u\000u\000u\000u\000u\000u\000t\000t\000t\000t\000t\000t\000t\000s\000s\000s\000s\000s\000s\000s\000r\000r\000r\000r\000r\000r\000r\000q\000q\000q\000q\000q\000q\000q\000p\000p\000o\000o\000n\000n\000m\000m\000l\000l\000k\000k\000j\000j\000i\000i\000i\000i\000i\000i\000i\000i\000i\000i\000i\000i\000i\000i\000i\000i\000i\000i\000i\000i\000i\000h\000h\000g\000g\000f\000f\000e\000e\000d\000d\000c\000c\000b\000b\000a\000a\000a\000a\000a\000`\000`\000_\000_\000_\000_\000^\000]\000\\\000\\\000\\\000[\000[\000[\000Z\000Z\000Z\000Z\000Z\000Z\000Y\000Y\000Y\000Y\000Y\000Y\000Y\000Y\000X\000X\000X\000X\000X\000X\000X\000X\000W\000W\000W\000W\000W\000W\000W\000W\000V\000V\000V\000V\000V\000V\000V\000V\000U\000U\000T\000T\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000P\000P\000P\000P\000P\000P\000P\000P\000P\000P\000P\000P\000P\000P\000O\000O\000O\000O\000O\000N\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000L\000L\000L\000K\000J\000I\000H\000H\000G\000G\000F\000E\000E\000D\000D\000D\000C\000C\000B\000B\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:\0009\0009\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!\000 \000\031\000\031\000\031\000\031\000\030\000\030\000\030\000\029\000\029\000\028\000\028\000\028\000\027\000\027\000\027\000\026\000\026\000\026\000\026\000\026\000\026\000\026\000\025\000\025\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\023\000\023\000\023\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\021\000\021\000\021\000\021\000\021\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\016\000\016\000\015\000\014\000\014\000\014\000\014\000\014\000\r") let goto = - ((16, "\000\239\000f\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\001)\000\000\001]\001\184\000\000\000\245\000w\000\000\000\000\000\000\000D\001p\000\000\000\000\001|\001\146\001\188\000\000\000\000\002\154\000\000\000\000\002\158\000\000\002\242\000\000\000\000\000\000\0036\000\000\003J\000\000\000\000\000\000\004:\000\000\004@\000\000\000\000\004\128\004\194\000\000\000\000\004\210\004\230\004\246\000\000\000\000\004\252\000\000\000\000\005\"\000\000\005\162\000\000\000\000\000\000\0062\000\000\006<\000\000\007&\007(\000\000\000\000\0076\000\000\007\\\007\148\007\164\000\000\000\000\007\168\000\000\007\176\000\000\000\000\007\242\000\000\b0\000\000\000X\000\000\002\176\002\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\n\220\000\000\000u\000\000\000\000\0144\000\000\000\000\015\224\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\016\234\000\000\000\000\bp\021d\000\000\000\000\021h\000\000\000\000\000\000\000\000\bR\000\000\bZ\018\184\000\000\b`\000\000\000\000\b\138\000\000\000\000\b\156\000\000\b\174\000\000\000\000\000\000\b\222\000\000\000\134\b\228\000\144\000\000\002H\000\000\000\000\000\000\0052\000\000\003\234\000\000\000\000\000\000\000#\000\000\000\000\016\016\000\127\002R\000\000\000\000\005\022\t\156\000\000\006\020\000\000\011v\006\2462*\006\246\n\162\026R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\1842z\000\000\000\000\019\216\020\184\021~\000\000\023\188\002\170\000\000\000\000\004<\024x\000\000\000\000\000\000\014v\000\000)$.\198\bR\000\000\000\000?4\000\000\000r\000\000\021P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\152\000\000\000\000\001\016\000\000\002\250\000\000\016\030\000\000\016\168\000\000\026\162\000\000#\150\000\000.\202\000\000/\024\000\0004 \000\0004B\000\000\011\232\000\000@\030\000\000\000\000\000\000\000\000\000\0004\176\000\0006x\000\000Cp\000\000F\208\000\000G^\000\000Gb\000\000Gv\000\000G\142\000\000H\028\000\000Ht\000\000H\128\000\000H\152\000\000I\014\000\000I0\000\000I>\000\000IV\000\000\024\198\000\000\000\000\028L\000\000\000\000\000\000\000\000\015\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Z@Z\000\000\002\002\000\000\000\000\002\018\003\142\000\000\000\254\t\024\000\000\000\000\t\"\tp\000\000\000\000\tz\t\142\t\166\000\000\000\000\t\186\000\000\000\000\t\202\000\000\t\210\000\000\000\000\000\000\t\214\000\000\t\232\000\000\t\234\000\000\t\248\000\000\000\000\t\254\n\004\000\000\000\000\n\n\n\012\n\"\000\000\000\000\n0\000\000\000\000\n4\000\000\n8\000\000\000\000\000\000\n<\000\000\nB\000\000\nD\nN\000\000\000\000\n^\000\000\np\nr\nz\000\000\000\000\n\130\000\000\n\138\000\000\000\000\n\140\000\000\n\142\000\000\003V!\252\000\000\n\148\000\000\n\156$\240\000\000\n\158\000\000\000\000\n\166\000\000\n\176\000\000\n\178\000\000\000\000\000\000\n\184\000\000\n\188\tf\000\000\000\000\000\000\n\198\000\000\000E\000\000\000\000\000z!\138\000\000\016\132\000\000\020\018\000\000\000\000\005\"\000\026\000\000\000\000\000\000\000\000\0062\001\198\000\000\t\224\000\000\000\000\000\000\018t\000\000\021^\000\000\012\218\000\000\000\000\000\000\000\000\000\000\000\000\rH\000\000\000\000\001\144\000\000\001\178\000\000\000\000\000\000\012\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\254\bD\r\030\000\000\n\214\000\000\n\224\r(\000\000\n\230\000\000\000\000\000\000\022L\000\000\000\000\000\000\000\000\002\154\000\000\000\0003X\000\000\000\000\000\000\005\158\r\242\000\000\025\0003\168\000\000\000\000\000\000\000\000\018\160\030p\000\000\000\0003\248\000\000\000\000\000\000\007\1704\158@\210\000\000@\234\000\000\000\000\000\0004\224\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\236\000\000\000\000\000\000\000\000'H5\166\021\168\000\000\029\018\000\000\000\000\031P\000\000\007\188\000\000\000\000\012\016\000\000\000\000\000\000\021\180\000\000)\236/\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\142\000\000\000\000\000\0000\2521T$J\000\000\000\000$\146\000\000\007\192\000\000\r\214\000\000\000\000\000\000\022$\000\000*\004\000\000\030\138\000\000 \200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000If\000\0008`\000\000A\002\000\000Ir\000\000J<\000\000J^\000\000J\134\000\000J\212\000\000K\028\000\000K4\000\000K@\000\000KP\000\000K\162\000\000L\014\000\000L,\000\000L<\000\000\000\0001\194\000\000Aj\000\000\000\000\000\000\023@\000\000\000\000\000\000\000\000\000\000\000\0001\218\000\000\000\000\000\000\000\000A\178\000\000\000\000\000\000\024\156\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\200\000\000<\004\000\000\001%\000\000\000\000\000\000LX\000\000L\\\000\000Lv\000\000M8\000\000M\128\000\000M\148\000\000M\164\000\000M\202\000\000M\246\000\000N<\000\000Nb\000\000N\134\000\000N\150\000\000N\204\000\000\000\000\000\000\000\000\000\000\023\166\000\000\000\000\000J%^\000\000\000\0008@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\149\000\000\000\000A\226\000\000\000\000\000\000\007\200\001@\000\000\000\000\000\000\000\000\n&\000\0005\230\000\000\000\000\000\000\000\000\000\0006\016\000\000\000\000\000\0006R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\252\000\000\n\254\016\180\000\000\011\006\000\000\000\000\004\000\004\136\000\000\004\018\000\000\000\000\000\000\000\000\019\192\000\000\011\b\000\000\000\000\000-\004N\000\000\005N\000\000\000\000\000\000\001p\000\000\014`\002\146\011\n\000\000\000\000\011\022\011\028\000\000\000\000\011\"\0114\0116\000\000\000\000\011:\000\000\000\000\011>\000\000\011T\000\000\000\000\000\000\011V\000\000\011X\000\000\011\\\000\000\011^\000\000\000\000\011`\011b\000\000\000\000\011d\011h\011l\000\000\000\000\011n\000\000\000\000\011t\000\000\011v\000\000\000\000\000\000\011\138\000\000\011\146\000\000\011\148\011\152\000\000\000\000\011\154\000\000\011\164\011\168\011\172\000\000\000\000\011\174\000\000\011\184\000\000\000\000\011\194\000\000\011\198\000\000\007\228)\014\000\000\011\202\000\000\011\210)Z\000\000\011\216\000\000\000\000\011\218\000\000\011\222\000\000\011\236\000\000\000\000\000\000\011\238\000\000\005\162\000\000\000\000\000\000\005h\001\218\000\000\000\000\006p\000\000\000\000\011\240\019\\\000\000\012\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004j\000\000\000\000\000\000\000\000\000\000\t\b\020^\000\000\012\n\000\000\012(\021\200\000\000\012*\000\000\000\000\rX\0124\000\000\000\000\012>\012D\000\000\000\000\012N\012P\012j\000\000\000\000\012l\000\000\000\000\012n\000\000\012p\000\000\000\000\000\000\012v\000\000\012x\000\000\012|\000\000\012\132\000\000\000\000\012\140\012\146\000\000\000\000\012\152\012\160\012\162\000\000\000\000\012\166\000\000\000\000\012\170\000\000\012\174\000\000\000\000\000\000\012\180\000\000\012\188\000\000\012\190\012\204\000\000\000\000\012\208\000\000\012\212\012\218\012\226\000\000\000\000\012\230\000\000\012\238\000\000\000\000\012\246\000\000\012\250\000\000\b\")\136\000\000\r\012\000\000\r\014+\"\000\000\r$\000\000\000\000\r*\000\000\r0\000\000\r2\000\000\000\000\000\000\r4\000\000\rF\023b\000\000\rJ\000\000\000\000\n\238\029\014\000\000\rN\000\000\rP\0300\000\000\rT\000\000\000\000\000\000\000\000\000\000\000\000\000\000Bb\000\000*\182\000\000\000\000\000\000B\180\000\000\000\000\006\180\000\000\000\000\000\000\005\254\007\254\000\000\000\000(\016\000\000\000\000\002\178\000\000\000\000\000\000\000\000\004\224\000\000\022N\000\000\000\000\017$\000\000\000\000\000\0008\222\000\000\000\000\000\000\000\000\000\000\019P\000\000\000\000\000\000\000\127\000\0009p\000\000\000\000\000\000\000\000\005\024\r\240\000\0009\184\000\000\000\000\000\000\000\000\014H\000\0009\210\000\000\000\000\000\000\000\000\001\029\000\000\007\230\000\000\000\000'\1386\154\000\000\000\000\000\000CB\000\000\000\000\000\000\001\n\000\000C\182\000\000\000\000\000\000C\186\000\000\000\000\003\018\000\000\029j\000\0276\174\000\000\000\000\000\000\b\192\014\234\000\000\000\000\000\000\000\000\000\000\000\000)\214\000\000\000\000)\238\000\000\000\000+\224\000\000\bj\000\000\020\024\000\000\000\000\000\000\025\222\000\000*\244\000\000\000\000C\226\000\000\000\000\000\000\025\238\000\000\000\000\000\000\000\000\000\000\000\000!`\000\000#\204\000\000\000\000\000\000\006\152\000\000\000\000\000\000\000\000\000\000\000\000N\232\000\000:\154\000\000DD\000\000O\148\000\000O\218\000\000O\230\000\000P,\000\000P:\000\000P\196\000\000P\232\000\000P\246\000\000Q.\000\000Q2\000\000QR\000\000Q^\000\000R\012\000\0007\210\000\000\000\000\000\000\0014\000\000\005\224\000\000\015\148\002\022\b\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\160\000\000+\208(\182\026\132\000\000\000\000\000\000:\238\000\000;P\000\000;\162\000\000,\020,.\005\156\003\214\000\000\000L\005\004\000\000\000\000\000\000\007\\\000\000\000\000\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\000D\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000,\238\000\000,r\000\000\000\000\000\000\016D\000\000\000\000\007\150\000\000\000\000\000\000\030\028\002t\000\000\030\226\000\000\000\000\000\000\000\000\003:\000\000\000\000\017B\000\000\031\168\000\000\000\000-F\000\000\000\000\000\000\t\162\000\000\000\000\023\214\000\000\000\000\023\242\000\000\000\000\000\000;\234\000\000\000\000\000\000\031\140\000\000\000\000\000\000\000\000<0\000\000\000\000\000\000\000\000\tB\017d\000\000<2\000\000\000\000\000\000\000\000\000\000\000\000\017\212\000\000\000\000\003\220\000\000\018\210\000\000\t\162\000\000\000\000\006\2440\164\000\000\006\254\000\000\000\000\000\000\000\000\006\152\000\000-\248\000\000 Z\003\204! \000\000\0046\000\000\019\152\000\000\020J\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007J!\230\000N\"\152\000\000\000\000\000\000\001\154\000\000\021\016\000\000\007N\000\000\000\000\014\250\003F#^\000\000\005$\000\000\021\214$$\000\000\000\000\022\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007v\tt\000\000\007\140\000\000\000\000\000\000\000\000\006\156\000\000\023N\000\000\000\000\000\000'\164E\128\000\000\000\000\000\000'6\000\000\000\000\000\000\000\000\000\000\011\192\024:\000\000\000\000=.\000\000\000\000\015<\000\000\025\166\000\000\000\000\"\004\000\000\000\000\000\000=B\000\000\000\000\000\000\000\000=j\000\000\000\000\t\234\025\190\000\000\000\000=\130\000\000\000\000\007\156(h\000\000\026\014\000\000\000\000=\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000.\170\000\000\000\000\000\000\014V\000\000\000\000\028z\000\000\000\000'\134\000\000\000\000\000\000>@\000\000\000\000\000\000\000\000>T\000\000\000\000\n\152\028\248\000\000\000\000? \000\000\000\000\007\188\000\000\000\000\000\000\000\000\014V\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\158\000\000\024\020\000\000\000\000\000\000E\148\000\000\nX\000\000\000\000\000\000\000B\000\000\016l\000\000\000\000\002\030\024\218\000\000\025\160\000\000\000\000\000\000\004\164\000\000E\152\004\248E\172\000\000F~\000\000\000\000\000\000\005t\000\000F\150\006(\000\000\000\000.\250\006\000\000\028\164\000\000/\254\0142\000\000\000\000\000\000\000\000\000\000\0007\000\000\000\000\000\000\000\000\000\000?\212\000\000\000\165\000\000\000\000\000\000\000\000\000\000\000\172\000\000\011\148\001\b\012\156\000\000\002\180\r\176\000\000\001\180\000\000\0030\000\000\004\184\000\000\0054\000\000/\254\000\000\000\000\000\000\000\000\000\000\005\210\000\000\006\252\000\000\007<\000\000/\254\014\166\000\000\003$\000\000\014\144\001\186\000\000\rH\000\000\rL\000\000\000\000\000\000\000\000\000\000\000\000\rR\000\000\rV\000\000\r\\\000\000\000\000\000\000\000\000\000\000\r\130\000\000\000\000\000\000\000\000\000\000\014\210\r\140\000\000\000\000\r\196\000\000\000\000\r\154\006\004\015$\000\000\015*\000\000\000\000\004\196\t8\000\000\r\234\000\000\000\000\014$\000\000\000\000\000\000\000\000\000\000\000\000\015\022\r\208\000\000\000\000\000\000\014\016\r\234\b\162\006\240\014\022\014l\000\000\000\000\014\030\b\212\t\136\014R\014\142\000\000\000\000\t\200\015x\000\000\015z\000\000\015\166\000\000\000\000\015\134\000\000\000\000\015\144\000\000\000\000\000\000\000\000\015\146\000\000\015\188\000\000\000\000\000\000\015\192\000\000\000\000\000\000\015\196\000\000\000\000\000\000"), (16, "\0027\000\174\001\175\001\181\004\171\001\180\004\190\b\017\007\031\007l\b\018\007\003\006\169\006\170\006r\006\224\006\169\006\170\000\174\000\181\0027\000\007\000\174\003\178\004\171\000\174\004\190\004E\005\140\005t\007\182\000\018\007 \007\216\002\178\000\183\007#\006\169\006\170\007\217\0068\007m\000\174\007n\001\182\003\182\000\005\007\218\000\174\005E\0027\000h\000\183\000\017\0028\000p\004s\000\129\0029\004F\000\r\001\182\000\025\b\t\b\n\005F\007\187\004\173\001\182\003\181\000\129\004\174\007o\007\133\000\231\000p\004s\b\022\001\182\000\237\005\160\000\016\000\017\007p\003\185\005F\005.\004\173\006\171\000\129\003\003\004\174\006\171\000\231\000r\002\177\000\174\001\175\000\232\0027\001\184\006\225\000\174\004\171\000\004\004\190\005.\000\174\001\175\001\176\0031\001\180\007S\006\171\000q\002\170\000i\001\199\b\023\002:\003\028\000\174\000\130\002;\001\227\000\024\007\218\b\024\005E\000\005\000\183\005\187\b\014\004\195\007\172\000\130\001D\0050\001\202\001\182\000\225\000\183\007\220\006:\000\233\007\164\007\165\004\241\004\242\000\129\001\182\007\141\006\249\000\231\000\130\004s\003:\0050\000\232\000\225\000\129\003\004\001\234\000\233\005F\007\221\004\173\007\169\004\241\004\242\004\174\003<\0052\b\026\b+\006\205\006\247\007U\000\239\006\250\006\169\006\170\004\187\000\004\000\004\005.\0057\002\172\005\021\007\172\000\240\005G\0052\004\188\005\189\005\154\001\246\000\239\001\183\006\206\006\169\006\170\004\187\007\151\007\183\001\182\0057\005\136\000\005\000\005\000\240\005G\007\222\004\188\000\130\006;\001D\002\174\000\030\000\225\001\186\007\223\007S\000\233\007\172\000\130\b)\007\253\001\233\007%\001\220\0059\002\167\005u\002\219\005\148\0050\001\186\005O\007\191\000\240\005\171\b,\002\168\007\219\001\233\005\160\000\149\005\162\005l\004\199\0059\004k\005J\007\255\000\174\006\171\000\239\005O\b\026\000\240\b\001\000\174\000\241\007T\001\203\003\183\001\204\004\200\005l\004\199\0052\000\174\004\201\005\025\001O\006\171\004\202\002\177\000\240\0027\004\187\000\241\004\203\004\171\0057\004\190\007U\004\200\000\240\005G\b-\004\188\004\201\000\242\002\222\0060\004\202\005\028\bN\007\223\007[\000\174\004\203\001\183\001I\b/\004E\005\140\005t\000\129\003\196\b \000\242\000\231\001\186\001\249\004\244\006:\000\235\002\179\001L\000\243\001\233\003\006\000\b\001\186\000\174\003(\001O\0059\001\199\005J\b1\001\233\002\180\004s\005O\001\222\000\240\b3\000\244\000\241\005B\001K\005F\0018\004\173\005l\004\199\000\131\004\174\001\202\003\175\000\129\005C\000\246\000h\000h\0027\000\248\000\183\003=\004\171\003\185\004\190\005.\004\200\000\029\000\132\001\182\000\249\004\201\000\242\000&\000\130\004\202\003<\006\150\000h\000\225\000\174\004\203\001\219\000\233\000#\007\218\b\029\005t\001I\007\159\007\160\003\163\006/\000\129\003\004\006\209\003\026\000\231\001\251\001\221\004M\006\151\000\232\006v\007i\000\"\006\154\006\169\006\170\007F\007V\005\155\004\195\005\165\004s\001D\0050\000\239\000\130\000\248\0027\000i\000i\005F\004\171\004\173\004\190\001J\007b\004\174\000\251\003.\007\\\007G\007J\006\169\006\170\001\253\b(\000\129\001D\005I\000\174\000i\005.\006D\000\174\007\218\b\029\005t\006*\0052\007c\005C\007f\006\169\006\170\000\145\000\130\005\173\006F\004\187\bQ\000\225\bs\0057\001\251\000\233\006\237\000\240\005G\007\133\004\188\0035\005\157\007`\004s\007S\001\203\bt\001\204\001O\003\185\006\171\007Y\005F\005\136\004\173\001O\000\174\003\164\004\174\001\220\000l\000l\0050\007]\007b\001O\000\240\b\"\000\239\000\241\000h\000\130\001\252\005.\007^\007_\001\220\0059\006\171\005u\000j\005\148\000l\000%\005O\000(\007X\005\171\007c\005z\007f\006\169\006\170\005\142\001\021\005l\004\199\0052\006\171\006\177\000\242\005C\000\174\001\175\001\176\003\031\001\180\004\187\005\183\007U\000\220\0057\0030\006\208\004\200\000\240\005G\b#\004\188\004\201\001\233\000\129\000\174\004\202\0050\000\231\007\223\000*\001\018\004\203\000\232\007\143\0058\000\134\000\146\000i\000\183\006\206\006\169\006\170\006\224\006\169\006\170\007a\000\137\001\182\005\142\000\244\000y\000\184\000\240\001\019\000\174\000\241\003\178\001\020\0059\003\196\005u\0052\b%\000.\000\246\005O\004N\006\172\b'\006\171\007\146\004\187\000m\0000\005\029\0057\005l\004\199\003\180\000\240\005G\b#\004\188\000\174\003*\0027\000\242\b|\000\130\004\171\007\223\004\190\006\165\000\225\007\232\004\200\0058\000\233\001\157\007s\004\201\007\245\003\181\006-\004\202\000h\003+\000\174\006\166\005\021\004\203\001\182\007\218\b\029\005t\003+\006\171\000\183\007q\006\171\0059\0027\005u\000h\b%\0028\001\182\005O\007\019\0029\b'\000\239\000\129\000\248\006\235\007V\000\222\003\025\005l\004\199\006+\004s\001O\006\168\000\253\003-\000h\0027\004G\006\183\005F\004\171\004\173\004\190\003,\001\234\004\174\004\200\003\"\006\166\000\174\006-\004\201\006\190\005\150\b$\004\202\005\173\006\197\000\174\000i\005.\004\203\006\184\007\218\b\029\005t\001N\003\196\006\187\006\169\006\170\000\174\000\174\006\205\001O\002\170\007\149\000i\004l\002:\006\148\006\149\0004\002;\005\022\0006\000\130\001\182\000h\000\129\001\183\000\225\004s\002T\006\234\000\226\002U\006\206\006\169\006\170\000i\005F\000\240\004\173\007\246\000\241\005\145\004\174\006\198\006\205\002\228\0050\001\186\000\174\005\020\0027\b&\000;\001\199\004\171\001\233\004\190\005.\004\241\004\242\001\209\006G\be\007\247\000\239\007\235\000l\007\236\006\206\006\169\006\170\000\242\000\174\005\176\001\202\001O\006F\007\218\b\029\005t\006\171\0052\002\172\000\129\005\021\000:\006\191\002T\000i\000\130\002[\004\187\002V\000C\000\174\0057\002W\0037\006\205\000\240\005G\b#\004\188\000@\006N\001O\004s\000l\0050\006\171\007\223\000?\002\174\003\165\000B\005F\0058\004\173\002\242\006P\000\174\004\174\006\206\006\169\006\170\005\030\001\186\002\167\004F\002\212\b.\004_\002a\000E\001\233\000\240\005.\001\182\002\168\006\175\0059\bl\005u\0052\b%\006\171\000\240\005O\000\130\000\241\b'\002V\003\167\004\187\004d\002W\003\159\0057\005l\004\199\005\021\000\240\005G\b#\004\188\002\215\006Q\005\198\003\161\004e\005\022\000\174\007\223\002\177\001\210\006\176\007\182\004\200\0058\005C\000\242\006P\004\201\007\004\007\005\000\174\004\202\0050\002\250\001\223\004E\002a\004\203\004i\006\199\001\245\000\129\000G\001\228\006\171\000\231\001\203\0059\001\204\005u\000\235\b%\004\243\006\194\005O\001\202\001O\b'\007\006\000\240\002\179\007\155\002b\000\174\004s\005l\004\199\0052\bb\007\007\0039\006\235\b\026\001\182\006\212\002\180\0027\004\187\001O\001O\004\171\0057\004\190\005\031\004\200\000\240\005G\b#\004\188\004\201\003\165\005\022\000h\004\202\007\174\006\238\007\223\007\175\000\174\004\203\005 \006T\0058\007\218\b\029\005t\000\130\007\004\007\005\006\\\006\218\000\225\003\164\001I\000K\000\233\006P\007\179\000\240\000M\001O\002b\004\241\004\242\006^\b0\0059\006\177\005u\003\166\b%\000\129\004s\005O\003\016\0028\b'\007$\002\239\0029\000\129\005F\000\129\004\173\005l\004\199\000\129\004\174\007\007\000\239\002T\006\190\004\198\002[\005\131\002\253\b2\000i\004Q\005\131\000\129\0027\005.\004\200\006\216\004\171\004k\004\190\004\201\007\157\004\241\004\242\004\202\000h\007\172\003\007\004z\001D\004\203\002h\004\241\004\242\001\203\000\174\001\204\bx\001\226\bm\004E\005\140\005t\000\129\001O\005\133\005\024\007\193\000\130\002i\005\132\005G\002:\005\168\002j\005\168\002;\000\130\002k\000\130\000h\004\241\004\242\000\130\002l\0050\002V\000\129\004G\004s\002W\000\231\001\239\006\186\005\192\006\193\000\232\000\130\005F\000\129\004\173\005\021\000h\000\240\004\174\005\192\000\241\007\184\000Q\000P\000i\006!\005\170\006<\005\169\001O\000S\006\184\005O\005.\0052\005T\006\191\006\187\006\169\006\170\002a\006!\000\130\005l\004\187\001F\007b\005\194\0057\000]\bl\000\242\000\240\005G\b#\004\188\000\129\005=\005\193\000i\004\171\0027\004\172\007\223\006#\004\171\000\130\004\190\001L\0058\007c\000\225\007f\006\169\006\170\000\233\001O\000X\000\130\001\018\006\"\000i\007\199\000\174\0050\000W\007\187\000Z\004E\005\140\005t\000\\\000h\0059\005C\005u\000l\b%\000\244\002\167\005O\005\022\001\019\b'\003\190\007\195\001\020\000\240\006\191\000\239\002\168\005l\004\199\000\246\006\171\007\209\0026\004s\002S\0052\007\187\000\130\000\240\004\173\000_\002b\005F\004\174\004\173\004\187\004\200\000l\004\174\0057\007\187\004\201\003\141\000\240\005G\004\202\004\188\0063\005\154\001\234\007\214\004\203\0027\005.\007\202\006\171\004\171\000\174\004\190\000l\0058\000a\bd\000i\007M\003\005\005C\000\174\001\175\001\176\001\177\001\180\000\129\004\018\000\174\000h\000\222\003\021\000\148\004E\005\140\005t\000\154\005m\0059\000\153\005u\000\005\005\148\002h\000\184\005O\001\182\002\233\005T\bw\006_\000\240\006b\006j\000\241\000\183\005l\004\199\0050\004H\000\156\002i\004s\004\170\001\182\006^\002j\006P\006l\000\159\002k\005F\004G\004\173\b~\004\200\002l\004\174\000\161\001\245\004\201\007\232\000\174\004O\004\202\000\242\000\141\001\234\007\244\000l\004\203\000\130\005.\0052\000i\000\129\000\225\b\156\004\187\000\231\000\226\000y\000\165\004\187\000\232\0034\000\240\0057\000h\004\188\006m\000\240\005G\b\157\004\188\005\152\005\154\006\246\006p\007\190\0027\005\239\000\144\007\254\004\171\006l\004\190\007v\0058\007\133\001\182\001Q\001A\006P\000\239\005C\001V\006\224\006\169\006\170\003\185\006\247\000\174\0050\006\250\006\169\006\170\004E\005\140\005t\000h\001\199\0059\007\189\005u\007b\005\148\000\129\001\201\005O\000\130\002T\005T\b\127\002[\000\225\000l\007\188\bm\000\233\005l\004\199\001\202\000i\001\234\001U\004s\001\245\0052\007c\001^\007f\006\169\006\170\004\239\005F\000h\004\173\004\187\004\200\001[\004\174\0057\bm\004\201\000h\000\240\005G\004\202\004\188\005\191\005\154\001Z\000\239\004\203\0027\005.\004-\006\027\004\171\005\027\004\190\001]\0058\006\171\000i\000\240\001\182\001\183\000\241\001`\006\171\000\130\007-\001b\002V\001f\000\174\007\235\002W\007\236\005a\004E\005\140\005t\001h\001j\0059\001O\005u\001\186\005\148\bl\001l\005O\005\021\001q\005T\001\233\001p\000\242\000i\001y\001v\004d\005l\004\199\0050\006\171\007\136\000i\004s\002\250\000\129\001u\002a\006\153\000\222\003\015\005f\005F\001x\004\173\001{\004\200\001}\004\174\001\129\0027\004\201\001\131\001\135\004\171\004\202\004\190\000\240\001\134\000l\000\241\004\203\006\151\005.\0052\005j\001\137\006\154\006\169\006\170\000\174\001\203\000\174\001\204\004\187\001\147\001\142\007\218\0057\005E\001\141\001O\000\240\005G\001\144\004\188\0067\005\154\001\146\001\149\001\151\000\242\000\129\001\156\000\174\000l\000\231\001\162\001\161\0058\000\130\000\235\001\164\005\022\000l\000\225\004s\001\166\001\168\000\226\007\b\001\172\000\129\001\250\0050\005F\0028\004\173\001\179\000\240\0029\004\174\002b\0059\007\225\005u\001\238\005\148\005\215\006\205\005O\001\244\b*\005T\001\243\002\251\005.\001\182\003\011\003\196\007\240\005l\004\199\000\239\006\171\003!\003'\007\252\007\139\0052\003&\0033\003A\006\206\006\169\006\170\002\253\000\130\003F\004\187\004\200\003E\000\225\0057\003N\004\201\000\233\000\240\005G\004\202\004\188\007\250\005\154\003K\003J\004\203\003M\000\130\003P\001\015\002h\002:\0027\000o\0058\002;\004\171\0050\004\190\003R\003V\003X\001\245\003Z\003\\\003a\003`\003i\002i\003f\000\239\003e\003h\002j\000\174\003k\003m\002k\0059\007\218\005u\005E\005\148\002l\000\174\005O\003q\000\174\005T\007\182\003s\003w\0052\003v\003y\000\240\005l\004\199\000\241\003\131\006\171\003~\004\187\003}\003\128\000\174\0057\006\205\004s\003\130\000\240\005G\b\028\004\188\003\133\004\200\003\135\005F\003\140\004\173\004\201\007\223\003\146\004\174\004\202\003\145\003\148\b\031\003\150\000\242\004\203\006\206\006\169\006\170\b\027\003\152\003\156\003\173\005.\000\174\001\175\001\176\001\236\001\180\000\174\001\175\001\176\001\241\001\180\003\172\003\189\0059\000\240\005J\b!\000\241\001\199\007\235\005O\007\236\000\174\b'\007\243\001\225\002\167\003\195\003\194\001O\004(\005l\004\199\003\198\000\240\000\183\001\199\002\168\003\203\001\202\000\183\003\202\001\021\001\209\001\182\005\221\003\211\003\208\000\242\001\182\004\200\0050\0027\005\238\000\174\004\201\004\171\001\202\004\190\004\202\003\207\003\210\003\213\003\215\0027\004\203\003\219\003\221\0028\003\223\006\171\000\129\0029\003\225\000\174\002T\001\018\003\230\002U\007\218\003\229\005E\006\231\003\238\000h\0027\0052\003\235\003\234\0028\003\237\001\199\003\240\0029\003\242\000\244\004\187\003\246\001\209\001\019\0057\003\248\003\252\001\020\000\240\005G\b\028\004\188\004s\003\251\000\246\003\254\001\202\004\b\002\169\007\223\004\003\005F\000h\004\173\004\002\b\031\004\005\004\174\007\232\007\192\004\007\004G\000h\002\170\004\n\007\239\004\012\002:\b\030\000h\000\130\002;\005.\002V\0027\004\017\004\023\002W\004\171\0059\004\190\005J\b!\000i\002\170\000h\005O\004\022\002:\b'\004\025\001\210\002;\004\027\004\029\004!\000\174\005l\004\199\007\184\001\203\004E\001\204\005E\004'\004G\004&\001O\004,\0042\001O\0041\006\158\002a\006\162\001\211\004\200\000i\001\203\002\171\001\204\004\201\006\203\0050\006\229\004\202\006\182\000i\001O\006\196\004s\004\203\001\183\006\240\000i\002\172\007\030\001\183\0077\005F\0079\004\173\007C\000\129\007E\004\174\001\210\004\171\007O\004\190\000i\000h\007k\000\133\001\186\000l\002\172\b\007\0052\001\186\005.\b5\001\233\b9\bM\002\174\bK\001\233\004\187\bE\001\216\bG\0057\001\203\bI\001\204\000\240\005G\b\028\004\188\002\167\006?\002\209\001O\000h\005\186\002\174\007\223\000\240\000l\001\251\002\168\bO\b\031\004G\000\240\bU\bV\002b\000l\b[\002\167\002\237\002\212\b\\\007\235\000l\007\236\000\130\000\240\004\173\0050\002\168\006\246\004\174\001O\000i\0059\ba\005J\b!\b`\000l\bh\005O\bj\002\177\b'\0027\001\253\bp\bq\004\171\002\223\004\190\005l\004\199\006\247\bu\002\215\006\250\006\169\006\170\000\184\bv\by\0052\002\177\000h\000i\000\174\006\224\006\169\006\170\004\200\004E\004\187\005E\004m\004\201\0057\bz\000\134\004\202\000\240\005G\000h\004\188\002\179\004\203\b}\005a\001\251\000\137\002\151\b\128\004\195\000y\b\129\b\146\b\135\005\175\004q\002\180\004s\b\144\b\140\000\184\000l\002\179\000h\b\143\b\152\005F\004d\004\173\b\150\000\129\b\154\004\174\b\159\000\231\004t\000\000\002\180\0059\000\232\005J\005\177\006\021\000\228\001\253\005O\000i\005.\005T\0027\006\171\000\000\000\000\004\171\000l\004\190\005l\004\199\004\187\004x\000\000\006\171\000\000\005>\000i\000\000\000\240\000\000\005\184\004\188\007<\000\174\005\186\000\000\000\000\004\200\004E\005@\005E\000\000\004\201\000h\000\000\004\197\004\202\000\000\005a\000\000\000i\000\000\004\203\000\174\000\000\000\000\000\000\000\130\004E\000\000\0050\000\129\000\225\000\000\000\000\000\231\000\233\004s\000\000\000\129\000\232\004d\000\000\000\222\002\249\007b\005F\000\000\004\173\000\000\000l\004_\004\174\000\000\000\000\000\000\005f\004s\004\199\000\174\001\175\001\176\003$\001\180\000h\0052\001\182\005.\000l\007c\000\239\007f\006\169\006\170\004d\004\187\004\200\000\000\000i\0057\005j\004\201\000\000\000\240\005G\004\202\004\188\000\000\000\000\005\233\000\000\004\203\000l\000\183\000\000\007F\000\130\000\000\000\000\007\014\005\175\000\225\001\182\000\000\000\130\000\233\000\174\000\000\0027\000\225\000\000\004E\004\171\000\226\004\190\000\174\000\000\000\000\0050\007G\007J\006\169\006\170\005L\0059\000h\005J\005\177\000\000\000i\000\174\005O\000\000\007I\005T\004E\005M\005t\001?\000\239\004s\000w\005l\004\199\000\000\000\000\000\000\000\239\006\171\001\182\000l\000\000\000\240\0052\000\000\000\241\000y\007G\007J\006\169\006\170\004\200\000\000\004\187\004s\000\136\004\201\0057\004G\006=\004\202\000\240\005G\005F\004\188\004\173\004\203\000\000\000\000\004\174\000\184\0027\000\000\000\000\001\199\004\171\000\242\004\190\005y\006\246\000i\001\209\005G\000\000\005.\003\029\005w\006\171\000\000\000\174\000\000\000l\006\205\000\174\007\182\001\202\000\000\000\000\004E\005M\005t\000\000\0059\006\247\005J\005{\006\250\006\169\006\170\005O\000\000\000\240\005}\000\000\000\241\000\000\006\206\006\169\006\170\000\240\005l\004\199\000\241\000\248\006<\006\171\000\000\004s\000\184\005O\000\000\000\000\005T\000\000\000\255\0050\005F\000\000\004\173\004\200\005l\000\000\004\174\001\231\004\201\000\242\001\183\000\000\004\202\000\000\000\000\000h\000l\000\242\004\203\000\000\007\137\005.\000\174\000\000\000\000\000\000\000\000\000\000\000\134\005G\000\000\000\000\001\186\000\000\0052\000\000\000\000\0027\000\000\000\137\001\233\0028\000\000\000y\004\187\0029\000\000\006\171\0057\000h\000\000\000\000\000\240\005G\000\174\004\188\000\248\006\171\000\000\001\210\000\000\000\000\0027\000\000\000\000\000\000\004\171\001\001\004\190\0058\007\152\006e\0050\000\000\000\000\000\000\005O\005|\000\000\005T\000i\000\000\000\000\004W\000\174\000\000\001\203\005l\001\204\004E\005M\005t\007\232\0059\000\000\005u\001O\005v\000\000\007\234\005O\000\000\002\170\005T\000\184\000\000\002:\0052\000\000\000\000\002;\005l\004\199\000\000\000i\000\000\000\000\004\187\004s\005n\000\000\0057\000\000\000\000\007\232\000\240\005G\005F\004\188\004\173\004\200\007\242\007\183\004\174\000\000\004\201\000\000\002\171\000\000\004\202\000\000\000\000\0058\005r\000\000\004\203\000\000\000\174\005.\000\000\000\145\000\000\000l\000\174\001\175\001\176\003\170\001\180\000\000\000\000\000\000\0027\000\000\000\000\007(\004\171\0059\004\190\005u\000\000\005v\000\000\007\184\005O\002\172\000\000\005T\006\227\000\000\000\000\001O\000h\000\000\000\174\005l\004\199\000l\000\183\004E\005\140\005t\000\000\000\000\000\129\000\000\000\000\001\182\000\222\002\246\0050\000\000\000\000\000\000\004\200\002\174\000\000\000\000\000\000\004\201\000\000\000\000\000\000\004\202\000\000\000\000\000\000\001\199\004s\004\203\002\167\002\234\002\212\000h\001\209\000\000\000\129\005F\000\240\004\173\004\171\002\168\004\172\004\174\000\000\0052\000\000\000\000\001\202\000\000\007\235\001\218\007\236\000\000\000\000\004\187\000\000\000i\005.\0057\001O\0027\002\223\000\240\005G\004\171\004\188\004\190\002\215\000\130\000\134\000\151\000\000\000\000\000\225\000\000\002\177\000\000\000\226\000\000\0058\000\137\007\235\000\174\007\236\000y\000\000\000\000\004E\005\140\005t\000\000\001O\000\174\001\175\001\176\003\187\001\180\000i\000\000\000\000\000\130\000\000\004\173\0059\000\000\005u\004\174\005v\0050\006\246\005O\000\239\001\251\005T\000\000\000\129\004s\002\179\000\000\000\222\002\245\005l\004\199\000\000\000\000\005F\000\183\004\173\000l\000\000\000\000\004\174\002\180\006\247\000\000\001\182\006\250\006\169\006\170\000\000\004\200\000\000\000\000\0052\000\000\004\201\005.\001\210\000\000\004\202\000\000\001\253\000\000\004\187\000\000\004\203\000\000\0057\000\000\0027\001\183\000\240\005G\004\171\004\188\004\190\005\147\000\000\000\000\000l\000\000\004a\000\000\000\000\001\203\000\000\001\204\000\000\0058\000\000\000\130\000\174\001\186\000\000\001O\000\225\004E\005\140\005t\000\226\001\233\000\129\000\000\000\240\000\000\000\231\000\241\0050\000h\000\000\000\237\000h\0059\000h\005u\000\000\005\148\000\000\000\000\005O\007b\000\000\005T\006\171\000\129\004s\000\184\004\187\000\222\002\244\005l\004\199\000\000\000\239\005F\000\240\004\173\000\242\004\188\000\000\004\174\001\231\0052\000\000\007c\000h\007f\006\169\006\170\004\200\000\000\000h\004\187\000\000\004\201\005.\0057\000\000\004\202\000\000\000\240\005G\000\000\004\188\004\203\005\149\000\130\000\184\0027\000\000\000\000\000\225\004\171\000i\004\190\000\233\000i\0058\000i\000\000\000\000\000\000\001\189\000\174\001\175\001\176\003\192\001\180\000\000\000\130\000\174\000\000\000\000\000\000\000\225\004E\005\178\005t\000\226\001\183\000\000\0059\000\000\005u\000\000\005\148\0050\000h\005O\000\239\000i\005T\000\140\004\189\000\143\000\240\000i\000\183\000\241\005l\004\199\001\186\000\000\006\171\004s\000\000\001\182\000h\000h\001\233\000\000\000\000\000\239\005F\000\000\004\173\000\000\000\000\004\200\004\174\007|\0052\007b\004\201\000\000\000l\000\000\004\202\000l\000\242\000l\004\187\000\000\004\203\005.\0057\000\000\0027\000\000\000\240\005G\004\171\004\188\004\190\005\167\000\000\007c\000\000\007f\006\169\006\170\000\000\000i\006\205\000\000\000\000\0058\005\180\000\000\000\174\000\000\000\000\000l\000\000\004E\005\178\005t\000\000\000l\000\000\000\000\000\240\000i\000i\000\241\000\000\000\000\006\206\006\169\006\170\0059\000\000\005u\000\000\005\148\0050\000\000\005O\000\000\000\000\005T\000\000\000\000\004s\000\240\000\000\000\000\000\241\005l\004\199\000\000\000\134\005F\000\134\004\173\000\242\000\000\000\000\004\174\000\000\000\000\000\000\000\137\001\213\000\137\000\000\000y\004\200\000y\007\"\0052\007\144\004\201\005.\000l\006\171\004\202\000\000\000\242\000h\004\187\000\000\004\203\000\243\0057\000\000\0027\000\000\000\240\005G\004\171\004\188\004\190\007 \000l\000l\005\182\007#\006\169\006\170\002/\005\200\000\244\000\000\006\171\0058\002=\000\245\000\174\000\000\001\183\000\000\000\000\004E\005M\005t\000\000\000\246\000\174\001\175\001\176\004$\001\180\000\000\0050\000\000\000\000\000\000\000\000\0059\0027\005u\001\186\005\181\0028\000\000\005O\000\000\0029\005T\001\233\000\129\004s\000\000\000i\000\222\002\243\005l\004\199\000\000\000\000\005F\000\183\004\173\000h\000\000\000\000\004\174\000\000\0052\007e\001\182\002Y\000\000\000\000\000\000\004\200\000\000\000\000\004\187\000\000\004\201\005.\0057\006\171\004\202\000\000\000\240\005G\000\000\004\188\004\203\000\184\000\184\007c\0027\007f\006\169\006\170\004\171\000\174\004\190\000\000\007\147\0058\002\170\000\000\001\247\004T\002:\000\000\000\000\000\000\002;\000h\000\000\000\130\000\174\000\000\000\000\000\000\000\225\004E\000\000\005E\000\226\000l\000\000\0059\000i\005u\000\000\005\181\0050\006\242\005O\000\000\000\000\005T\000\000\002\214\000\000\000\000\000\000\000\000\000\129\005l\004\199\000\000\000\222\000\224\004s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\005F\000\000\004\173\000h\000\000\004\200\004\174\000\000\0052\001\199\004\201\000\000\000\000\006\171\004\202\000\000\001\209\002\172\004\187\000i\004\203\005.\0057\000\000\000\129\000\000\000\240\005G\000\231\004\188\001\202\000\000\000\000\000\237\0027\000\000\000\000\000\000\004\171\000\000\004\190\000l\0061\0058\000\000\000\000\005\186\002\174\000\000\000h\000\130\000\000\000\000\000\129\002\149\000\225\000\174\000\222\002\236\000\226\000\000\004E\002\167\005E\002\212\001\183\000\000\0059\000i\005u\000\240\005v\0050\002\168\005O\000\000\007\187\005T\000\000\000\000\000\000\000\240\000\000\000\000\000\241\005l\004\199\001\186\000\000\000\130\004s\000l\004G\000\239\000\225\001\233\000\000\000\000\000\233\005F\002\215\004\173\000\000\000\000\004\200\004\174\000\000\0052\002\177\004\201\000\000\000\000\000\000\004\202\000i\000\242\000\000\004\187\000\130\004\203\005.\0057\000\000\000\225\000\000\000\240\005G\000\226\004\188\000\184\001\210\000\000\000\239\0027\000\000\000\000\000h\004\171\000\000\004\190\000l\006A\005\175\000\000\005X\005\186\000\000\000\000\000h\000\000\002\179\000\000\000\000\000\000\005[\000\174\006\205\001\203\000\000\001\204\004E\000\239\005E\000\000\000h\002\180\0059\001O\005J\005\177\000\000\0050\000h\005O\000\000\000\240\005T\000\000\000\241\000\184\006\206\006\169\006\170\000\000\005l\004\199\000l\000\000\000h\004s\000\000\000\000\000\000\000\000\005\216\000\000\000\000\000\000\005F\000\000\004\173\000i\000\000\004\200\004\174\000\000\0052\000\000\004\201\000\242\000\000\000\000\004\202\000i\000\240\000\000\004\187\000\241\004\203\005.\0057\000\000\000\129\000\000\000\240\005G\000\231\004\188\002\165\000i\000\000\000\235\0027\000\000\000\000\000\000\004\171\000i\004\190\000\000\006C\005\175\000\000\000\240\005\186\000\000\000\241\000h\000\242\007\191\000\000\004_\000\000\000i\000\174\000\000\006\205\006\171\000\000\004E\000\000\005E\000\129\000\000\000\000\0059\000\231\005J\005\177\000\000\0050\000\232\005O\000l\004d\005T\000\243\000\242\000\000\000\000\006\206\006\169\006\170\005l\004\199\000l\000\000\000\130\004s\004e\000\000\000\000\000\225\000\000\000\000\000\244\000\233\005F\000\000\004\173\0017\000l\004\200\004\174\000\000\0052\000\000\004\201\000\000\000l\000\246\004\202\000i\004i\000\000\004\187\000\000\004\203\005.\0057\000\000\000\000\000\000\000\240\005G\000l\004\188\000\130\000\000\000\000\000\239\0027\000\225\000\000\000\000\004\171\000\233\004\190\000\000\007\196\005\175\000\000\000\000\005\186\000\000\000\000\007\204\000\000\000\000\000\000\000\000\000\000\000\000\000\174\000\000\006\205\001B\006\171\004E\005M\005t\000\184\000\000\000\000\0059\000\000\005J\005\177\006\205\0050\000\239\005O\000\000\000\184\005T\000\000\005\224\007\001\000\000\006\206\006\169\006\170\005l\004\199\000l\000\000\000\000\004s\005\240\004\176\000\000\000\000\006\206\006\169\006\170\000\000\005F\004\185\004\173\000\000\000\000\004\200\004\174\000\000\0052\000\000\004\201\000\000\000\000\006\205\004\202\000\000\000\240\000\184\004\187\000\241\004\203\005.\0057\000\000\0027\000\000\000\240\005G\004\171\004\188\004\190\000\000\005\249\000\000\000\000\000\000\000\000\006\206\006\169\006\170\006\205\000\000\000\000\005\175\001F\000\000\000\174\000\000\000\000\000\000\000\242\004E\000\000\005E\000\000\000\000\000\240\000\000\000\000\000\241\006\171\000\000\000\000\000\000\006\206\006\169\006\170\0059\000\000\005J\005\177\000\000\0050\006\171\005O\000\000\005\004\005T\001\018\000\129\004s\007\012\000\000\000\231\000\000\005l\004\199\000\000\000\237\005F\000\242\004\173\000\000\000\000\000\000\004\174\000\000\000\244\000\000\000\000\000\000\001\019\000h\000\000\004\200\001\020\000\000\0052\000\000\004\201\005.\000\000\000\246\004\202\006\171\000\000\000\000\004\187\000\000\004\203\000\000\0057\000\000\0027\000\000\000\240\005G\004\171\004\188\004\190\000\000\007\210\000\000\000\000\000\000\005\186\000\000\000\248\b\000\000\000\000\000\006\171\0058\000\000\000\130\000\174\000\000\000\000\001\003\000\225\004E\005M\005t\000\233\000\000\000\000\000\000\000\000\000\000\000\129\000\000\0050\000\000\000\222\002(\000h\0059\000i\005u\000\000\005v\000\000\000\000\005O\000\000\000\000\005T\000\000\000\129\004s\007\025\000\000\000\222\0021\005l\004\199\000\000\000\239\005F\000\000\004\173\000\000\000\000\007\023\004\174\000\000\0052\000\000\000\174\001\175\001\176\004*\001\180\004\200\000\000\000\000\004\187\000\000\004\201\005.\0057\000\000\004\202\000\000\000\240\005G\000\000\004\188\004\203\000\000\000\000\006\205\0027\000\000\000\130\005\195\004\171\000\000\004\190\000\225\000i\005\175\000\183\000\226\007\021\000\000\000\000\000\000\000\000\000l\000\000\001\182\000\000\000\130\000\174\006\206\006\169\006\170\000\225\004E\000\000\005t\000\226\000\000\000\000\0059\000\000\005J\005\177\006\205\0050\0073\005O\000\000\000\000\005T\000\000\000\239\000\000\000\240\000\000\000\000\000\241\005l\004\199\000\000\000\000\000\000\004s\000\000\000\000\000\000\000\000\006\206\006\169\006\170\000\239\005F\000\000\004\173\000\000\000\000\004\200\004\174\000\000\0052\000\000\004\201\000\000\000\000\006\205\004\202\000l\000\242\000\000\004\187\000\000\004\203\005.\0057\000\000\0027\000\000\000\240\005G\004\171\004\188\004\190\000\000\000\000\000\000\000\000\006\171\000\000\006\206\006\169\006\170\000\184\000\000\005x\0058\000\243\000\000\000\174\000\000\000\000\000\000\000\000\004E\000\000\005E\000\000\006\012\000\174\001\175\001\176\004/\001\180\000\000\000\240\000\244\000\000\000\241\000\129\0059\001:\005u\000\231\005v\0050\006\171\005O\000\235\000\000\005T\000\246\000\129\004s\000\240\000\000\000\231\000\241\005l\004\199\000\000\000\237\005F\000\183\004\173\000\000\000\000\000\000\004\174\000\242\000\000\000\000\001\182\000\000\000\000\000\000\000\184\004\200\000\000\000\000\0052\001\183\004\201\005.\000\000\000\000\004\202\006\171\000\242\000\000\004\187\006\028\004\203\000\000\0057\006\205\0027\000\000\000\240\005G\004\171\004\188\004\190\001\186\000\130\000\000\000\000\000\000\000\000\000\225\000\000\001\233\000\000\000\233\005D\005\197\000\000\000\130\000\174\006\206\006\169\006\170\000\225\004E\000\000\005E\000\233\000\000\0071\000\000\000\000\000\174\000\000\000\000\0050\000\000\004E\000\000\000\000\0059\000\000\005u\000\000\005\199\000\000\000\000\005O\000\239\000\000\005T\000\000\000\129\004s\000\000\000\000\000\222\0024\005l\004\199\000\000\000\239\005F\000\000\004\173\000\000\004s\007/\004\174\000\000\0052\000\000\000\000\000\000\002\r\001\182\000\000\004\200\000\000\000\000\004\187\000\000\004\201\005.\0057\000\174\004\202\000\000\000\240\005G\004E\004\188\004\203\000\000\000\000\000\000\0027\006\171\000\000\000\000\004\171\000\000\004\190\000\000\000\174\005H\000\000\000\000\007@\000\000\000\000\000\000\000\000\000\000\005N\000\000\000\000\000\130\000\174\004s\000\000\000\000\000\225\004E\000\000\005E\000\226\001\183\001\182\0059\000\240\005J\005K\000\241\0050\000\000\005O\000\000\000\000\005T\000\000\000\000\000\000\000\240\000\000\000\000\000\241\005l\004\199\001\186\000\000\000\000\004s\000\000\000\000\000\000\000\000\001\233\001F\000\000\000\239\005F\000\000\004\173\000\242\000\000\004\200\004\174\000\000\0052\000\000\004\201\000\000\001\199\006\205\004\202\000\000\000\242\000\000\004\187\001\209\004\203\005.\0057\000\000\0027\000\000\000\240\005G\004\171\004\188\004\190\001\018\000\000\001\202\000\000\006\205\000\000\006\206\006\169\006\170\005G\000\000\000\000\005H\000\243\000\000\000\174\000\000\000\000\000\000\000\244\004E\000\000\005E\001\019\000\000\007>\000\000\001\020\006\206\006\169\006\170\000\000\000\244\000\000\000\246\000\000\0059\002]\005J\005K\000\000\0050\000\000\005O\000\000\000\000\005T\000\246\000\129\004s\000\240\006g\000\231\000\241\005l\004\199\005O\000\237\005F\005T\004\173\000\000\005G\000\000\004\174\000\000\000\000\005l\000\000\000\000\000\000\000\000\000\000\004\200\000\000\000\000\0052\000\000\004\201\005.\000\000\000\000\004\202\006\171\000\242\000\000\004\187\000\000\004\203\000\000\0057\000\000\0027\000\000\000\240\005G\004\171\004\188\004\190\000\000\000\000\000\000\001\210\000\000\006i\006\171\000\000\000\000\000\000\005O\000\000\005H\005T\000\130\000\174\000\000\000\000\000\000\000\225\004E\005l\005E\000\233\000\000\000\129\000\000\005c\000\000\000\231\001\203\0050\001\204\000\000\000\237\000\000\0059\000\000\005J\005K\001O\000\000\000\000\005O\000\000\000\000\005T\000\000\000\129\004s\000\000\000\000\000\222\002H\005l\004\199\000\000\000\239\005F\000\000\004\173\000\000\000\000\000\000\004\174\000\000\0052\000\000\000\174\001\175\001\185\000\000\001\180\004\200\000\000\000\000\004\187\000\000\004\201\005.\0057\000\000\004\202\000\000\000\240\005G\000\000\004\188\004\203\000\000\000\130\000\000\0027\005\151\000\000\000\225\004\171\000\000\004\190\000\233\000\000\005\144\000\183\000h\007z\000\000\000\000\000\000\000\000\000\000\000\000\001\182\000\000\000\130\000\174\000\000\000\000\000\000\000\225\004E\000\000\005E\000\226\000\000\000\000\0059\007\127\005J\005\146\000\174\0050\000\000\005O\000\239\000\000\005T\000\000\000\000\000\000\000\240\000\000\000\000\000\241\005l\004\199\000\000\000\000\000\000\004s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\005F\000\000\004\173\000\000\000\000\004\200\004\174\000\000\0052\000\000\004\201\000i\000\000\000\000\004\202\000\000\000\242\000\000\004\187\000\000\004\203\005.\0057\000\000\0027\000\000\000\240\005G\004\171\004\188\004\190\000\000\000\000\000\000\000\000\005\143\000\000\000\000\000\000\000\000\000\000\001\199\000\000\005\144\000\243\000\000\000\174\000\145\001\209\000\000\000\000\004E\000\000\005E\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\001\202\000\244\000\000\000\000\000\000\0059\002_\005J\005\146\000\000\0050\000\000\005O\000\000\000\000\005T\000\246\000\000\004s\000\240\000\000\000l\000\241\005l\004\199\000\000\000\000\005F\000\000\004\173\000\242\000\000\000\000\004\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\200\000\000\000\000\0052\001\183\004\201\005.\000\000\000\000\004\202\000\000\000\242\000\000\004\187\000\000\004\203\000\243\0057\000\000\0027\000\000\000\240\005G\004\171\004\188\004\190\001\186\000\000\000\000\005\163\000\000\000\000\000\000\000\000\001\233\000\244\000\000\000\000\005\164\000\000\004\192\000\174\000\000\000\000\000\000\000\000\004E\000\129\005E\000\000\000\246\000\231\000\134\001\154\000\000\000\000\000\232\0050\001\210\000\000\000\000\000\000\0059\000\137\005J\005\166\000\000\000y\000\000\005O\000\000\000\000\005T\000\000\000\129\004s\000\000\000\000\000\231\000\000\005l\004\199\005\227\000\237\005F\001\203\004\173\001\204\000\000\000\000\004\174\000\000\0052\000\000\000\000\001O\000\000\000\000\000\000\004\200\000\000\000\000\004\187\000\000\004\201\005.\0057\000\000\004\202\000\000\000\240\005G\000\130\004\188\004\203\000\000\000\000\000\225\0027\005\161\000\000\000\233\004\171\000\000\004\190\000\000\000\000\005\144\000\000\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\130\000\174\000\222\002N\000\000\000\225\004E\000\000\005E\000\233\000\000\000\000\0059\000\000\005J\005\146\000\239\0050\000\000\005O\000\000\000\000\005T\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005l\004\199\000\000\000\000\000\129\004s\000\000\000\000\000\222\002Q\000\000\000\000\000\000\000\239\005F\000\000\004\173\000\000\000\000\004\200\004\174\000\000\0052\000\000\004\201\000\000\000\000\000\000\004\202\000\000\000\000\000\000\004\187\000\130\004\203\005.\0057\000\000\000\225\000\000\000\240\005G\000\226\004\188\000\000\000\000\000\000\000\000\0027\000\000\000\000\000h\004\171\000\000\004\190\000\000\000\000\005\175\000\000\000\000\005\179\000\000\000\000\000\000\000\000\007\200\000\000\000\000\000\240\000\130\000\174\000\241\000\000\000\000\000\225\004E\000\239\005E\000\226\000\000\000\000\0059\000\000\005J\005\177\000\000\0050\000\000\005O\000\000\000\000\005T\000\000\000\000\000\000\000\240\000\000\000\000\000\241\005l\004\199\000\000\000\242\000\000\004s\000\000\0027\000\000\000\000\000\000\0028\000\000\000\239\005F\0029\004\173\000i\000\000\004\200\004\174\000\000\0052\000\000\004\201\000\000\000\000\000\000\004\202\000\000\000\242\000\000\004\187\000\000\004\203\005.\0057\000\000\0027\000\000\000\240\005G\004\171\004\188\004\190\000\000\000\000\000\000\000\000\000\000\000\248\000\000\000\000\000\145\000\000\007\212\000\000\005\175\000\243\000\240\000\174\001\005\000\241\000\000\000\000\004E\000\000\005E\000\000\000\000\000\000\000\000\002\170\000\000\000\000\000\000\002:\000\244\000\000\000\000\002;\0059\004\194\005J\005\177\000\000\0050\000\000\005O\000l\000\000\005T\000\246\000\242\004s\000\240\000\000\000\000\000\241\005l\004\199\000\000\000\000\005F\000\000\004\173\000\000\002\218\000\000\004\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\200\000\000\000\000\0052\000\000\004\201\005.\000\000\000\000\004\202\000\000\000\242\000\000\004\187\000\000\004\203\000\000\0057\000\000\0027\000\000\000\240\005G\004\171\004\188\004\190\002\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\215\000\000\007\201\000\000\000\000\000\174\000\000\000\000\000\134\001\159\004E\000\000\005E\000\000\000\000\000\000\000\000\000\000\000\000\000\137\002\174\0050\000\000\000y\000\000\000\000\0059\000\000\005J\007\203\000\000\000\000\000\000\005O\000\000\002\167\005T\002\212\000\000\004s\000\000\000\000\000\000\000\240\005l\004\199\002\168\000\000\005F\000\000\004\173\000\000\000\000\000\000\004\174\000\000\0052\000\000\000\000\000\000\000\000\000\000\000\000\004\200\000\000\000\000\004\187\000\000\004\201\005.\0057\000\000\004\202\002\215\000\240\005G\000\000\004\188\004\203\000\000\000\000\002\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\007\201\000\000\004\171\000\000\004\190\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\000\000\000\000\174\000\000\000\000\000\000\0059\005\214\005J\007\203\000\000\0050\000\000\005O\002\179\000\000\005T\000\000\000\000\000\000\000\000\000\000\000\129\000\000\005l\004\199\000\222\004\131\000\000\002\180\000\000\005\245\000\000\000\000\000\000\000\129\005\248\000\000\000\000\004\171\000\000\004\190\000\174\004\200\000\000\005\254\0052\004\173\004\201\000\000\000\000\004\174\004\202\000\000\000\130\000\000\004\187\000\174\004\203\000\225\0057\000\000\005\214\000\233\000\240\005G\005\255\004\188\000\000\000\000\006\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\201\000\000\000\000\000\000\000\000\006'\000\130\000\000\000\129\000\000\005\248\000\225\000\231\000\000\000\000\000\226\000\239\000\235\000\000\005\254\000\000\004\173\000\000\000\000\0059\004\174\005J\007\203\006$\000\000\001\199\005O\004\195\000\000\005T\001D\000\000\001\209\000\000\000\000\005\255\000\000\005l\004\199\006\001\000\000\000\000\000\000\000\000\000\239\000\000\001\202\000\129\000\000\000\000\000\000\004\171\000\000\004\190\000\000\000\000\004\200\000\000\000\000\000\000\000\000\004\201\000\000\000\000\000\000\004\202\000\000\000\000\000\130\000\174\000\000\004\203\000\000\000\225\005\214\000\000\004\187\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\240\006\002\0027\004\188\002\225\000\000\004\171\000\000\004\190\000\240\000\000\000\000\000\241\000\000\005\247\000\000\000\000\005\136\000\000\005\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\005\254\000\000\004\173\005\128\000\000\000\000\004\174\000\000\000\000\002\227\000\000\000\000\000\000\000\000\000\240\000\242\000\000\000\241\000h\004\187\006\003\005\255\000\000\006&\000\000\006\001\000\000\000\240\006\002\000\129\004\188\006\026\004\199\002T\001\210\000\000\002[\000\000\000\000\002\170\000\000\004\173\000\000\001\018\0058\004\174\000\000\000\000\000\242\000\000\004\200\000\174\000\000\000\000\000\000\004\201\000h\000\000\006\015\004\202\005.\001\203\000\244\001\204\000\000\004\203\001\019\000\000\000\000\000\000\001\020\001O\000\000\000\000\000\000\006\003\004J\000\246\006\b\000h\000\000\000\240\000\000\000i\000\241\000\000\006\026\004\199\000\000\000\000\000\000\000\000\000\000\000\000\000\130\000\000\000\000\002V\000\000\000\000\000\000\002W\005\134\000\000\000\000\004\200\000\000\004\195\000\000\002\227\004\201\0050\000\000\000\000\004\202\000\242\000\000\004\187\000\129\000\145\004\203\000i\000\222\004\162\000\000\000\240\006\002\000\000\004\188\000\129\000\129\000\000\002`\002T\000\222\004\165\002[\002a\000\000\000\000\000\000\000\129\0058\001\018\000i\002T\0052\000\000\002[\000\000\000\000\000\174\000\000\000\000\000\000\000l\004\187\000\145\000\000\000\000\0057\000\000\000\244\000\174\000\240\000\000\001\019\004\188\000\000\000\000\001\020\000\000\000\000\006\003\000\000\000\000\006\b\000\246\000\000\000\000\000\145\005\136\000\000\000\130\006\026\004\199\000\000\000\000\000\225\000\000\000\000\000\000\000\226\000l\000\130\000\130\000\000\002V\000\000\000\000\000\225\002W\000\000\004\200\000\226\0059\000\130\000\000\004\201\002V\000\000\000\000\004\202\002W\000\000\000\000\000l\000\000\004\203\000\240\000\000\000\000\002b\000\000\004\199\000\000\000\239\000\000\000\134\003\138\0027\000\000\002`\000\000\004\171\000\000\004\190\002a\000\239\000\137\000\000\000\000\004\200\000y\002`\002c\002\240\004\201\000\000\002a\000\000\004\202\000\000\000\000\000\000\000\000\002f\004\203\000\000\005'\006>\000\129\000\000\000\000\000\000\002T\000\134\003\143\002[\000\000\002g\000\000\000\000\000\000\000\000\000\000\000\000\000\137\001O\000\000\002h\000y\000\000\000\174\000h\000\000\000\000\000\000\000\000\000\134\004\015\000\000\000\000\000\000\000\000\002\170\000\000\004\173\002i\000\000\000\137\004\174\000\000\002j\000y\000\000\000\000\002k\000\240\000\000\000\000\000\241\000\000\002l\000\000\000\000\005.\002\141\000\000\000\240\000\240\000\000\002b\000\241\000\000\000\000\000\130\000\000\000\000\002V\000\000\000\240\000\000\002W\002b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\002c\002\158\000\000\000\000\000i\000\000\000\000\000\000\000\000\000\242\000\000\002f\002c\002d\000\000\000\000\000\000\000\000\000\000\002`\000\000\000\000\0050\002f\002a\002g\0027\000\000\000\000\000\000\004\171\000\000\004\190\001O\000\129\002h\000\000\002g\000\222\004\168\000\145\000\000\000\000\000\000\000\000\001O\000\000\002h\000\000\000\000\000\000\000\000\000\000\002i\000\000\005'\005\137\0052\002j\000\000\0027\000\000\002k\000\000\004\171\002i\004\190\004\187\002l\000\000\002j\0057\002\141\0027\002k\000\240\000l\004\171\004\188\004\190\002l\000\000\000\000\000\000\002\141\000\000\000\000\000\000\000\000\005'\005\127\002\170\0058\004\173\000\000\000\000\000\000\004\174\000\000\000\130\000\000\000\000\005'\005(\000\225\000\000\000\240\0027\000\226\002b\000\000\004\171\005.\004\190\000\000\000\000\0059\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\170\000\000\004\173\000\000\000\000\000\000\004\174\002c\004\178\000\000\004\199\005'\0056\002\170\000\000\004\173\000\000\000\239\002f\004\174\000\000\005.\000\000\000\000\000\134\004\020\000\000\000\000\004\200\000\000\000\000\000\000\002g\004\201\005.\000\137\000\000\004\202\0050\000y\001O\000\000\002h\004\203\000\129\000\000\000\000\002\170\002T\004\173\000\000\002[\000\000\004\174\000\000\000\000\000\000\000\000\000\000\000\000\002i\000\000\000\000\000\000\000\000\002j\000\174\000\000\005.\002k\000\000\000\000\0050\0052\000\000\002l\000\000\000\000\000\000\002\141\000\000\000\000\000\000\004\187\000\000\0050\000\000\0057\000\129\000\000\000\000\000\240\002T\000\000\004\188\002[\000\000\000\000\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\0052\0058\000\130\000\174\000\000\002V\000\000\000\000\000\000\002W\004\187\000\000\0050\0052\0057\000\000\000\000\000\000\000\240\000\000\000\000\004\188\000\000\004\187\000\000\0059\000\242\0057\000\000\000\000\000\000\000\240\000\000\000\000\004\188\0058\000\000\000\000\000\000\000\000\002`\000\000\000\000\000\000\004\199\002a\000\130\0052\0058\002V\000\000\000\000\000\000\002W\000\000\000\000\000\000\004\187\000\000\0059\000\000\0057\004\200\000\000\000\000\000\240\000\000\004\201\004\188\000\000\0027\004\202\0059\000\000\004\171\000\000\004\190\004\203\004\199\000\000\000\000\000\000\0058\000\000\002`\000\000\000\000\000\000\000\000\002a\000\000\004\199\000\000\000\000\000\000\000\000\004\200\000\000\000\000\005'\005\139\004\201\000\000\000\000\000\000\004\202\0059\000\000\000\000\004\200\000\000\004\203\000\000\000\000\004\201\000\000\000\000\000\000\004\202\000\000\000\000\000\000\000\000\000\000\004\203\004\199\000\000\000\240\000\000\000\000\002b\000\000\000\000\000\000\000\000\002\170\000\000\004\173\000\000\000\000\000\000\004\174\000\000\004\200\000\000\000\000\000\000\000\000\004\201\000\000\000\000\000\000\004\202\002c\0054\000\000\005.\000\000\004\203\000\129\000\000\000\000\000\000\002T\002f\000\000\002[\000\000\000\000\000\000\000\000\000\240\000\000\000\129\002b\000\129\000\000\000\231\002g\000\231\000\000\000\174\000\235\000\000\000\232\000\000\001O\000\000\002h\000\000\000\000\000\000\000\000\000\000\000\000\000\174\000\000\002c\005Q\0027\000\000\000\000\000\000\004\171\000\000\004\190\002i\0050\002f\000\000\000\000\002j\000\000\000\000\000\129\002k\000\000\000\000\000\231\000\000\000\000\002l\002g\000\232\000\130\002\141\000\000\002V\005'\006W\001O\002W\002h\000\000\000\000\000\000\000\000\000\000\000\130\000\000\000\130\000\000\0052\000\225\000\000\000\225\000\000\000\233\000\000\000\233\002i\000\000\004\187\000\000\000\000\002j\0057\000\000\000\000\002k\000\240\000\000\002`\004\188\002\170\002l\004\173\002a\0027\002\141\004\174\000\000\004\171\000\000\004\190\000\000\000\000\0058\000\000\000\130\000\000\000\239\000\000\000\239\000\225\005.\000\000\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005'\006Y\000\000\000\000\0059\0027\000\000\000\000\000\000\004\171\001B\004\190\001D\000\000\000\000\000\129\000\000\000\000\000\000\002T\000\000\000\000\002[\004\199\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\000\000h\000\000\005'\006[\002\170\000\174\004\173\0050\000\000\004\200\004\174\000\000\000\000\000\000\004\201\000\000\000\000\000\000\004\202\000\000\000\240\000\000\000\000\002b\004\203\005.\000\000\007\187\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\000\000\240\000\241\002\170\000\241\004\173\000\000\0052\004G\004\174\000\000\002c\006\005\000\130\000\000\000\000\002V\004\187\000\000\000\000\002W\0057\002f\000\000\005.\000\240\000\000\001F\004\188\000\000\000i\000\000\000\000\000\242\000\000\000\242\002g\000\000\000\000\000\000\000\240\0050\0058\000\241\001O\000\000\002h\000\000\0027\000\000\001L\002\157\004\171\000\000\004\190\000\000\002a\000\000\001O\000\000\000\000\001\018\000\000\000\000\002i\000\000\0059\000\000\000\000\002j\000\000\000\000\000\000\002k\000\242\0050\0052\005\130\000\000\002l\000\244\000\000\000\248\002\141\001\019\004\199\004\187\000\000\001\020\000\000\0057\000\000\000\129\001\007\000\240\000\246\002T\004\188\000\000\002[\000\000\000\000\000l\004\200\000\000\000\000\000\000\000\000\004\201\000\000\0052\0058\004\202\002\170\000\174\004\173\000\000\000\000\004\203\004\174\004\187\000\248\000\000\000\000\0057\000\000\000\000\000\000\000\240\000\000\000\000\004\188\001\t\000\000\005.\0059\000\129\000\000\000\240\000\000\002T\002b\000\000\002[\000\000\0058\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\199\000\000\000\000\000\130\000\174\000\000\002V\000\000\000\000\000\000\002W\007\191\000\000\005a\000\000\0059\000\000\000\000\004\200\000\000\000\000\002f\000\000\004\201\000\000\000\000\000\000\004\202\000\000\000\000\000\000\0050\000\000\004\203\004\199\002g\004d\000\129\000\000\000\000\000\000\002T\000\000\001O\002[\002h\002a\000\130\000\000\000\129\002V\005f\004\200\002T\002W\000\000\002[\004\201\000\000\000\174\000\000\004\202\000\000\002i\000\000\000\000\0052\004\203\002j\000\000\000\000\000\174\002k\000\000\000\000\005j\004\187\000\000\002l\000\000\0057\000\000\002\141\000\000\000\240\002\152\000\000\004\188\000\000\000\129\002a\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\000\0058\000\130\000\000\000\000\002V\000\000\000\000\000\000\002W\000\000\000\174\000\000\000\000\000\130\000\000\000\000\002V\000\000\000\000\000\000\002W\000\000\000\000\000\000\0059\000\000\000\000\000\240\000\129\000\000\002b\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\002\143\000\000\000\000\000\000\004\199\002a\000\000\000\000\000\000\000\000\000\000\000\174\002\156\000\000\000\130\000\000\000\000\002a\000\000\000\225\000\000\000\000\004\200\000\233\000\000\002f\000\000\004\201\000\000\000\000\000\000\004\202\000\240\000\000\000\000\002b\000\000\004\203\000\000\002g\000\000\000\000\000\000\000\000\000\000\000\000\002\153\001O\000\000\002h\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\239\000\000\000\225\000\000\000\000\000\000\000\233\000\000\000\000\000\000\002i\000\000\002f\000\000\000\000\002j\000\000\000\000\000\000\002k\000\000\000\000\000\000\000\000\000\000\002l\002g\000\000\000\000\002\154\000\240\000\000\000\000\002b\001O\000\000\002h\000\000\000\000\000\000\000\239\000\000\000\240\000\129\000\000\002b\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\002i\000\000\000\000\000\000\000\000\002j\000\000\000\000\000\000\002k\000\000\000\174\000\000\002f\000\000\002l\000\000\000\000\000\000\002\141\000\000\000\000\000\000\000\000\000\000\002f\000\000\002g\000\240\000\129\000\000\000\241\000\000\000\231\000\000\001O\000\000\002h\000\235\002g\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001O\000\000\002h\000\000\000\174\000\000\000\000\000\130\002i\002\007\000\000\000\000\000\225\002j\000\000\000\242\000\233\002k\000\000\000\000\002i\000\240\000\129\002l\000\241\002j\000\231\002\141\000\000\002k\000\000\000\235\003\t\000\000\000\000\002l\000\000\000\000\000\000\002\141\001O\000\000\000\129\001\018\000\174\000\000\000\231\000\130\000\000\002\007\000\239\000\232\000\225\000\000\000\000\000\242\000\233\000\000\000\000\000\129\000\000\000\000\000\244\000\231\000\000\000\000\001\019\000\000\000\232\000\000\001\020\000\000\002\247\000\000\000\000\000\000\000\000\000\246\000\000\000\000\001O\000\000\000\000\001\018\000\000\000\000\000\000\000\130\000\000\000\000\000\239\000\000\000\225\000\000\000\000\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\244\000\000\000\000\0027\001\019\000\130\000\000\0028\001\020\000\000\000\225\0029\000\129\000\000\000\233\000\246\000\231\000\000\000\000\000\000\000\000\000\232\000\130\000\000\000\000\000\000\000\000\000\225\000\239\000\000\000\240\000\233\000\000\000\241\000\000\000\000\0027\000\000\000\000\000\000\0028\000\000\000\000\000\000\0029\000\000\000\000\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\000\000\000\000\000\000\000\000\000\000\000\242\000\239\000\000\000\000\002\170\000\000\000\240\000\000\002:\000\241\000\000\000\000\002;\000\130\000\000\000\000\000\000\002\001\000\225\000\000\000\000\000\000\000\233\000\000\000\000\001O\000\000\000\000\001\018\000\000\000\000\000\000\000\000\000\000\002\007\000\000\000\000\002\170\000\000\002\171\000\242\002:\000\000\000\000\000\000\002;\000\240\000\244\000\000\000\241\000\000\001\019\000\000\000\000\000\000\001\020\000\239\002\t\000\000\000\000\000\000\000\000\000\246\000\000\000\000\001O\000\240\000\000\001\018\000\241\000\000\0027\002\171\000\000\002\016\0028\002\172\000\000\000\000\0029\000\242\000\000\000\000\000\240\000\000\000\000\000\241\000\244\000\000\000\000\000\000\001\019\000\000\000\000\000\000\001\020\000\000\002\018\000\000\000\000\000\242\000\000\000\246\000\129\000\000\001O\002\174\000\231\001\018\002\172\000\000\000\000\000\235\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\002\167\002\231\002\212\000\129\000\174\000\000\000\244\000\231\000\240\000\000\001\019\002\168\000\235\000\000\001\020\002\170\000\000\000\240\002\174\002:\000\241\000\246\000\000\002;\000\000\000\174\000\248\000\000\000\000\000\000\000\000\000\000\002\223\002\167\002\229\002\212\000\129\001\011\002\215\000\000\000\231\000\240\000\000\000\248\002\168\000\235\002\177\000\130\000\000\000\000\002\171\000\242\000\225\000\000\001\r\000\129\000\233\000\000\000\174\000\231\000\000\000\000\000\000\000\000\000\232\002\223\000\000\000\000\000\130\000\000\000\000\002\215\000\129\000\225\000\000\000\000\000\231\000\233\000\000\002\177\000\000\000\235\000\129\000\000\000\000\000\000\000\231\002\172\002\179\000\000\000\239\000\235\000\000\000\000\000\174\000\000\000\000\000\000\000\248\000\000\000\000\000\130\000\000\002\180\000\174\000\000\000\225\000\000\000\000\001\023\000\233\000\239\000\000\000\000\000\000\000\000\000\000\002\174\000\000\000\000\000\130\002\179\000\000\000\000\000\000\000\225\000\000\000\000\000\000\000\233\000\000\000\000\002\167\002\210\002\212\000\000\002\180\000\130\000\000\000\000\000\240\000\000\000\225\002\168\000\239\000\000\000\233\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\000\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\239\002\223\000\000\000\000\000\000\000\000\000\000\002\215\000\000\000\240\000\000\000\000\000\241\000\000\000\000\002\177\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\000\002\007\000\000\000\000\000\000\000\000\000\000\000\242\000\000\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\179\002\007\000\000\003\r\000\000\000\000\000\240\000\242\0027\000\241\000\000\001O\0028\000\000\001\018\002\180\0029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\019\000\240\000\000\000\000\000\241\000\000\000\000\000\000\001O\000\244\002\007\001\018\000\000\001\019\000\000\000\000\000\242\001\020\000\240\000\000\000\000\000\241\000\000\000\000\000\246\000\000\000\000\000\000\000\240\000\000\000\244\000\241\0027\003\023\001\019\000\242\0028\000\000\001\020\0027\0029\001O\000\000\0028\001\018\000\246\002\007\0029\000\000\002\170\000\000\000\000\000\242\002:\000\000\000\129\004\150\002;\000\000\000\231\000\000\000\000\000\242\000\244\000\235\000\000\000\000\001\019\000\000\004\129\000\000\001\020\000\000\000\000\000\000\000\000\000\000\001O\000\246\004\152\001\018\000\000\000\248\000\000\002\171\000\000\000\000\001O\000\000\000\000\001\018\000\000\000\000\001\025\000\000\000\000\000\000\002\170\000\000\000\244\000\000\002:\000\000\001\019\002\170\002;\000\000\001\020\002:\000\244\000\000\000\000\002;\001\019\000\246\000\000\000\000\001\020\000\129\000\000\000\130\002\172\000\231\000\000\000\246\000\225\000\000\000\235\000\000\000\233\000\000\000\000\002\171\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\000\000\002p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\002\167\004\237\002\212\002\172\000\000\000\000\000\000\000\000\000\240\000\000\002\172\002\168\000\000\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\000\000\129\000\233\000\000\000\000\000\231\000\000\000\000\002\223\002\174\000\235\000\000\000\000\000\000\002\215\000\000\002\174\000\000\000\000\000\000\000\000\000\000\002\177\000\000\002\167\007\206\002\212\000\000\000\000\000\000\000\000\002\167\000\240\002\212\000\000\002\168\000\239\000\129\000\000\000\240\000\000\000\231\002\168\000\000\000\000\000\000\000\235\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\240\002\223\000\000\000\241\000\235\000\000\000\000\002\215\000\000\002\179\000\000\000\130\000\000\000\000\002\215\002\177\000\225\000\000\000\000\000\000\000\233\000\000\002\177\000\000\002\180\000\000\000\000\000\000\001\021\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\239\000\000\000\233\002\179\004[\000\000\000\130\000\000\001\018\000\240\002\179\000\225\000\241\000\000\000\000\000\233\000\000\000\000\002\180\000\000\000\000\000\000\000\000\000\000\000\000\002\180\000\000\000\244\000\000\000\000\000\000\001\019\000\000\000\000\000\000\001\020\000\239\002\227\000\000\000\000\000\000\000\129\000\246\000\242\000\000\000\231\000\000\000\000\000\000\000\239\000\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\018\000\000\000\000\000\000\000\000\000\000\004g\000\000\000\000\000\000\000\000\000\240\000\129\000\000\000\241\000\000\000\231\000\000\000\000\000\244\000\000\000\235\000\000\001\019\000\000\000\000\000\000\001\020\000\000\000\000\000\000\000\000\000\000\000\000\000\246\000\130\000\000\000\000\000\000\002\227\000\225\000\000\004o\000\000\000\233\000\242\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\004v\000\000\004\207\000\000\000\000\000\240\000\129\000\000\000\241\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\000\001\018\000\000\002\227\000\000\000\130\000\239\000\000\000\000\000\242\000\225\000\000\000\000\000\000\000\233\000\000\002\227\000\000\000\000\000\000\000\244\000\000\000\242\000\000\001\019\000\000\000\000\005\b\001\020\000\000\000\129\000\000\000\000\000\000\000\231\000\246\000\000\001\018\000\000\000\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\000\001\018\000\000\000\000\000\000\000\130\000\000\000\244\000\000\000\000\000\225\001\019\000\000\000\000\000\233\001\020\000\000\000\129\000\000\000\000\000\244\000\231\000\246\000\000\001\019\000\000\000\235\005\n\001\020\000\000\0027\000\000\000\000\000\000\0028\000\246\000\000\000\000\0029\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\130\000\000\000\239\000\000\000\000\000\225\000\129\000\129\000\000\000\233\000\231\000\231\000\000\000\000\000\000\000\235\000\235\000\000\000\000\000\000\000\000\001\021\005\012\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\130\000\000\000\241\000\000\000\000\000\225\000\000\000\239\000\000\000\233\000\000\000\000\000\000\002\170\000\000\000\000\000\000\002:\000\000\001\018\000\000\002;\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\130\000\130\000\000\000\244\000\000\000\225\000\225\001\019\000\239\000\233\000\233\001\020\000\000\000\240\000\000\000\000\000\241\000\000\000\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\018\000\000\000\000\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\021\000\000\000\239\000\239\000\244\000\000\000\242\000\000\001\019\002\172\000\000\000\000\001\020\000\240\000\000\000\000\000\241\000\000\000\000\000\246\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\129\000\000\000\000\001\018\000\231\000\000\000\000\000\000\002\174\000\235\001\021\000\000\000\000\005_\000\000\000\000\000\242\000\000\000\240\000\000\000\129\000\241\000\244\002\167\000\231\002\176\001\019\000\000\000\000\000\235\001\020\000\240\000\129\000\000\002\168\000\000\000\231\000\246\000\000\000\000\000\000\000\235\000\000\000\000\001\018\000\000\002\227\000\000\005h\005p\000\000\000\000\000\242\000\240\000\240\000\130\000\241\000\241\000\000\000\000\000\225\000\000\000\000\000\244\000\233\000\130\000\000\001\019\000\000\002\177\000\225\001\020\000\000\000\000\000\233\000\000\000\000\000\000\000\246\000\000\001\018\002\227\002\227\000\000\000\000\000\130\000\000\000\242\000\242\000\000\000\225\000\000\000\129\000\000\000\233\000\000\000\231\000\130\000\239\000\244\000\000\000\235\000\225\001\019\000\000\000\000\000\233\001\020\000\239\000\000\000\000\002\179\000\000\000\000\000\246\001\018\001\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\180\000\129\000\239\000\000\000\000\000\231\000\000\000\000\000\244\000\244\000\235\000\129\001\019\001\019\000\239\000\231\001\020\001\020\000\000\000\000\000\235\000\000\000\000\000\246\000\246\000\000\000\000\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\000\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\219\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\000\000\005\231\000\000\000\000\000\000\000\000\000\240\000\000\000\130\000\241\000\000\000\000\000\000\000\225\000\000\000\000\000\239\000\233\000\130\000\000\000\000\005\236\000\000\000\225\002\227\000\000\000\240\000\233\000\000\000\241\000\242\000\000\000\000\005\243\002\227\000\000\000\000\000\000\000\240\000\000\000\242\000\241\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\239\000\235\000\000\002\227\000\129\000\000\000\000\001\018\000\231\000\242\000\239\000\000\007\170\000\235\000\129\002\227\000\000\001\018\000\231\000\000\000\000\000\242\000\000\000\235\000\000\000\000\000\244\000\000\000\000\000\000\001\019\000\000\000\000\000\000\001\020\000\000\000\244\001\018\000\000\000\000\001\019\000\246\005\252\000\000\001\020\000\000\000\000\000\240\000\000\001\018\000\241\000\246\000\000\000\000\000\000\000\000\000\244\000\130\000\000\000\000\001\019\000\000\000\225\000\000\001\020\000\000\000\233\000\000\000\244\000\130\000\000\000\246\001\019\000\000\000\225\002\227\001\020\006\019\000\233\000\130\000\000\000\242\000\240\000\246\000\225\000\241\000\000\006\024\000\233\000\000\000\000\000\000\000\240\000\000\000\129\000\241\000\000\000\000\000\231\000\000\000\239\000\000\000\000\000\235\000\000\000\000\000\000\000\000\000\000\001\018\002\227\000\000\000\239\000\000\b\015\000\000\000\242\000\000\000\000\000\000\002\227\000\000\000\239\000\000\000\000\000\000\000\242\000\000\000\244\000\000\000\000\000\129\001\019\000\000\000\000\000\231\001\020\000\000\000\000\000\000\000\235\000\000\000\000\000\246\001\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\018\000\000\000\000\000\000\000\000\000\130\000\000\000\129\000\000\000\244\000\225\000\231\000\000\001\019\000\233\000\000\000\235\001\020\000\000\000\244\000\000\000\000\000\000\001\019\000\246\000\000\000\000\001\020\000\240\000\000\000\000\000\241\000\000\000\000\000\246\006\031\000\000\000\000\000\000\000\000\000\240\000\000\000\130\000\241\000\000\000\000\000\000\000\225\000\239\000\000\000\240\000\233\000\000\000\241\000\000\000\000\007\171\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\129\002\227\000\000\000\000\000\231\000\130\000\000\000\242\000\000\000\235\000\225\001;\000\129\000\000\000\233\000\000\000\231\000\242\000\239\000\000\000\000\000\235\000\000\001\018\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\001\018\000\000\000\000\000\000\000\000\000\000\000\000\000\244\000\000\000\000\001\018\001\019\000\000\000\239\000\000\001\020\000\000\000\000\000\000\000\244\000\000\000\000\000\246\001\019\000\000\000\000\000\000\001\020\000\240\000\244\000\130\000\241\000\000\001\019\000\246\000\225\000\000\001\020\000\000\000\233\000\000\000\129\000\130\000\000\000\246\000\231\000\000\000\225\000\000\000\000\000\235\000\233\000\000\000\000\000\130\000\000\007\171\000\000\000\000\000\225\000\000\000\000\000\242\000\233\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\239\000\235\000\000\000\000\000\000\001\018\000\000\000\000\001\017\000\000\000\240\000\000\000\239\000\241\000\242\000\000\000\129\000\000\000\000\000\000\000\231\000\130\000\000\000\000\000\244\000\235\000\225\000\000\001\019\000\000\000\233\000\000\001\020\000\000\000\000\000\000\000\000\000\000\001H\000\246\000\000\000\000\001\018\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\244\000\225\000\000\000\239\001\019\000\233\000\000\000\000\001\020\000\240\000\000\001\018\000\241\000\000\000\000\000\246\000\000\000\000\000\000\000\129\000\130\000\240\000\000\000\231\000\241\000\225\000\000\000\000\000\235\000\233\000\244\000\000\000\000\000\240\001\019\000\000\000\241\002\022\001\020\000\239\000\000\000\000\000\000\000\242\000\000\000\246\000\000\000\000\000\000\002\024\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\129\002r\000\000\000\239\000\231\000\000\000\000\000\242\000\000\000\235\000\000\001\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\018\000\130\000\240\000\000\000\000\000\241\000\225\000\244\000\000\000\000\000\233\001\019\001\018\000\000\000\000\001\020\000\000\000\000\000\000\000\244\000\000\000\000\000\246\001\019\000\000\000\000\000\000\001\020\000\000\000\000\002\145\000\244\000\000\000\000\000\246\001\019\000\242\000\000\000\240\001\020\000\000\000\241\000\130\000\000\000\239\000\000\000\246\000\225\000\129\000\000\000\000\000\233\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\000\000\000\000\000\000\240\000\000\001\018\000\241\002\161\000\000\000\000\000\000\000\000\000\129\000\242\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\232\000\000\000\000\000\244\000\000\000\239\000\000\001\019\000\000\000\000\003\001\001\020\000\000\000\000\000\000\000\000\000\242\000\000\000\246\000\000\001\018\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\129\000\000\000\231\000\000\000\231\000\130\000\000\000\235\000\000\000\235\000\225\000\244\000\000\000\000\000\233\001\019\001\018\000\000\000\240\001\020\000\129\000\241\000\000\000\000\000\231\000\000\000\246\000\000\000\130\000\235\000\000\000\000\000\000\000\225\000\000\000\244\000\000\000\233\000\000\001\019\000\000\000\000\000\000\001\020\000\000\000\000\0049\000\000\000\239\000\000\000\246\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\000\130\000\000\000\130\000\000\000\000\000\225\000\129\000\225\000\239\000\233\000\231\000\233\000\000\000\000\000\000\000\235\000\000\001\018\000\000\000\000\000\000\000\000\000\130\000\000\004?\000\000\000\000\000\225\000\000\000\000\000\242\000\233\000\000\000\000\000\000\000\000\000\244\000\000\000\000\000\000\001\019\000\000\000\000\000\239\001\020\000\239\000\000\000\000\000\000\000\000\000\000\000\246\000\129\000\000\000\000\000\000\000\231\000\000\001\018\000\000\000\000\000\235\000\000\000\000\000\000\000\239\000\000\000\240\000\000\000\129\000\241\000\130\000\000\000\231\000\000\000\000\000\225\000\244\000\235\000\000\000\233\001\019\000\000\000\000\000\000\001\020\000\000\000\000\000\000\000\000\000\240\000\000\000\246\000\241\000\000\004\134\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\242\000\240\000\233\000\240\000\241\001\018\000\241\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\000\000\000\000\233\000\000\000\000\000\000\000\240\000\244\000\000\000\241\000\000\001\019\004\139\000\000\004\143\001\020\000\000\000\000\000\242\000\239\000\242\000\000\000\246\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\248\000\000\000\235\000\129\004\181\000\129\000\239\000\231\000\000\000\231\000\242\001\027\000\235\000\000\000\235\000\129\001\018\000\000\001\018\000\231\000\000\000\000\000\000\000\000\000\235\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\244\000\000\000\244\001\018\001\019\000\000\001\019\000\000\001\020\000\000\001\020\000\000\000\000\000\000\000\000\000\246\000\000\000\246\004\209\000\000\000\000\000\000\000\244\000\130\000\242\000\000\001\019\000\000\000\225\000\000\001\020\000\000\000\233\000\130\000\000\000\130\000\240\000\246\000\225\000\241\000\225\000\000\000\233\000\000\000\233\000\130\000\000\000\000\000\000\000\000\000\225\000\000\001\018\000\240\000\233\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\000\000\000\000\239\000\000\000\000\000\000\000\242\000\244\000\000\000\000\000\000\001\019\000\239\000\000\000\239\001\020\000\000\005+\000\000\000\000\000\000\000\129\000\246\000\242\000\239\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\000\000\129\001\018\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\129\000\000\000\129\000\000\000\231\000\000\000\231\000\000\001\018\000\235\000\244\000\235\000\000\000\000\001\019\000\000\000\000\000\000\001\020\000\129\000\000\000\000\000\000\000\231\000\000\000\246\000\000\000\244\000\232\000\000\000\000\001\019\000\000\000\000\000\000\001\020\000\000\000\000\000\000\000\000\000\000\000\240\000\246\000\130\000\241\000\000\000\000\000\000\000\225\000\000\000\000\000\240\000\233\000\240\000\241\000\130\000\241\000\000\000\000\000\000\000\225\000\000\000\000\000\240\000\233\000\130\000\241\000\130\000\000\005\206\000\225\000\000\000\225\000\000\000\233\000\242\000\233\000\000\000\000\0065\000\000\006I\000\000\000\000\000\130\000\242\000\239\000\242\000\000\000\225\000\129\006K\000\129\000\233\000\231\000\000\000\231\000\242\000\239\000\232\000\000\000\232\000\129\001\018\000\000\000\000\000\231\000\000\000\239\000\000\000\239\000\232\000\000\001\018\000\129\001\018\000\000\000\000\000\231\000\000\000\000\000\000\000\244\000\232\000\000\001\018\001\019\000\239\000\000\000\000\001\020\000\000\000\244\000\000\000\244\000\000\001\019\000\246\001\019\000\000\001\020\000\000\001\020\000\000\000\244\000\000\000\000\000\246\001\019\000\246\000\000\000\000\001\020\000\000\000\000\000\130\000\000\000\130\000\000\000\246\000\225\000\000\000\225\000\000\000\233\000\000\000\233\000\130\000\240\000\000\000\000\000\241\000\225\000\000\000\000\000\000\000\233\000\000\000\000\000\130\000\240\000\000\000\000\000\241\000\225\000\129\000\000\000\000\000\233\000\231\000\240\000\000\000\240\000\241\000\232\000\241\006M\000\000\000\239\000\000\000\239\000\000\000\242\000\000\000\000\000\000\000\000\000\000\006S\000\240\000\239\000\000\000\241\000\000\000\242\000\000\000\000\000\000\006a\000\000\006o\000\000\000\239\000\000\000\242\000\000\000\242\000\000\000\000\000\129\001\018\000\000\000\000\000\231\000\000\000\129\000\000\000\000\000\232\000\231\000\000\000\000\001\018\000\242\000\232\000\000\000\000\000\129\000\000\000\244\000\130\000\231\001\018\001\019\001\018\000\225\000\232\001\020\000\000\000\233\000\000\000\244\000\000\000\000\000\246\001\019\000\000\000\000\000\000\001\020\000\000\000\244\000\000\000\244\000\000\001\019\000\246\001\019\000\000\001\020\000\240\001\020\000\240\000\241\000\000\000\241\000\246\000\000\000\246\000\000\000\248\000\000\000\240\000\239\000\130\000\241\000\000\000\000\000\000\000\225\000\130\001\029\000\000\000\233\000\240\000\225\000\129\000\241\000\000\000\233\000\231\000\000\000\130\000\000\000\242\000\232\000\242\000\225\000\000\000\000\000\000\000\233\000\000\000\129\000\000\000\000\000\242\000\231\000\000\000\000\000\129\000\000\000\232\000\000\000\231\000\000\000\000\000\239\000\242\000\232\000\000\000\000\000\129\000\239\000\000\000\000\000\231\000\000\000\000\000\000\000\129\000\232\000\000\000\000\000\231\000\239\000\129\000\000\000\000\000\232\000\231\000\248\000\000\000\248\000\000\000\232\000\000\000\000\000\000\000\000\000\000\000\130\001\031\000\248\001!\000\240\000\225\000\000\000\241\000\000\000\233\000\000\000\000\000\000\001#\000\248\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\130\001%\000\233\000\000\000\000\000\225\000\000\000\000\000\000\000\233\000\000\000\000\000\130\000\000\000\242\000\000\000\000\000\225\000\000\000\239\000\130\000\233\000\000\000\000\000\240\000\225\000\130\000\241\000\000\000\233\000\240\000\225\000\000\000\241\000\000\000\233\000\239\000\000\000\000\000\000\000\000\000\000\000\240\000\239\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\242\000\000\000\000\000\248\000\129\000\239\000\242\000\000\000\231\000\000\000\000\000\239\000\000\000\232\001'\000\000\000\000\000\000\000\242\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\232\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\240\000\000\000\231\000\241\000\248\000\000\000\000\000\232\000\000\000\000\000\248\000\000\000\000\000\000\000\000\001)\000\000\000\240\000\000\000\000\000\241\001+\000\248\000\000\000\240\000\000\000\130\000\241\000\000\000\000\000\000\000\225\000\000\001-\000\242\000\233\000\240\000\129\000\000\000\241\000\000\000\231\000\000\000\130\000\240\000\000\000\232\000\241\000\225\000\000\000\240\000\242\000\233\000\241\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\239\000\242\000\000\000\233\000\129\000\000\000\000\000\000\000\231\000\242\000\000\000\000\000\248\000\232\000\000\000\242\000\129\000\239\000\000\000\000\000\231\000\000\000\129\001/\000\000\000\232\000\231\000\000\000\000\000\248\000\129\000\232\000\000\000\130\000\231\000\000\000\248\000\239\000\225\000\232\0011\000\000\000\233\000\000\000\000\000\000\000\000\0013\000\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\248\000\000\000\000\0015\000\000\000\000\000\248\000\000\000\000\000\000\000\000\002n\000\000\000\130\000\000\000\129\000\000\002t\000\225\000\231\000\239\000\000\000\233\000\000\000\232\000\130\000\240\000\000\000\000\000\241\000\225\000\130\000\000\000\000\000\233\000\000\000\225\000\000\000\000\000\130\000\233\000\000\000\000\000\240\000\225\000\000\000\241\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\000\000\242\000\000\000\000\000\240\000\000\000\000\000\241\000\000\000\239\000\129\000\000\000\000\000\000\000\231\000\239\000\000\000\000\000\242\000\232\000\000\000\130\000\000\000\239\000\000\000\129\000\225\000\000\000\000\000\231\000\233\000\000\000\000\000\129\000\232\000\000\000\000\000\231\000\242\000\000\000\000\000\000\000\232\000\240\000\000\000\000\000\241\000\129\000\248\000\129\000\000\000\231\000\000\000\231\000\000\000\000\000\232\000\000\000\232\002v\000\000\000\000\000\129\000\000\000\239\000\248\000\231\000\000\000\000\000\000\000\000\000\232\000\000\000\000\000\000\000\130\002x\000\242\000\000\000\240\000\225\000\000\000\241\000\000\000\233\000\248\000\000\000\000\000\000\000\000\000\130\000\240\000\000\000\000\000\241\000\225\002z\000\240\000\130\000\233\000\241\000\000\000\000\000\225\000\000\000\240\000\000\000\233\000\241\000\000\000\000\000\000\000\130\000\242\000\130\000\000\000\000\000\225\000\239\000\225\000\000\000\233\000\000\000\233\000\248\000\242\000\000\000\130\000\000\000\000\000\000\000\242\000\225\000\239\000\000\002|\000\233\000\000\000\000\000\242\000\000\000\239\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\239\000\000\000\129\000\248\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\232\000\000\000\239\002~\000\248\000\000\000\000\000\000\000\000\000\000\000\248\000\000\000\242\000\000\000\000\002\128\000\000\000\000\000\248\000\000\000\000\002\130\000\000\000\000\000\000\000\000\000\000\000\129\000\000\002\132\000\000\000\231\000\240\000\000\000\000\000\241\000\232\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\129\000\232\000\240\000\000\000\231\000\241\000\000\000\000\000\000\000\232\000\240\000\130\000\000\000\241\000\248\000\000\000\225\000\000\000\000\000\129\000\233\000\242\000\000\000\231\000\240\002\134\000\240\000\241\000\232\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\240\000\000\000\129\000\241\000\000\000\242\000\231\000\000\000\130\000\000\000\000\000\232\000\000\000\225\000\000\000\239\000\000\000\233\000\130\000\242\000\000\000\242\000\000\000\225\000\000\000\000\000\130\000\233\000\000\000\248\000\000\000\225\000\000\000\000\000\242\000\233\000\000\000\129\000\000\000\000\002\136\000\231\000\000\000\000\000\248\000\130\000\232\000\000\000\000\000\000\000\225\000\239\000\248\000\000\000\233\002\138\000\129\000\000\000\000\000\000\000\231\000\239\000\000\002\140\000\000\000\232\000\248\000\130\000\248\000\239\000\000\000\000\000\225\000\000\000\129\000\000\000\233\002\182\000\231\002\184\000\000\000\248\000\129\000\232\000\000\000\000\000\231\000\000\000\239\000\000\000\000\000\232\002\186\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\129\000\239\000\233\000\000\000\231\000\000\000\000\000\000\000\000\000\232\000\000\000\000\000\130\000\000\000\129\000\000\000\000\000\225\000\231\000\000\000\000\000\233\000\242\000\232\000\240\000\000\000\000\000\241\000\000\000\000\000\130\000\000\000\000\000\000\000\240\000\225\000\239\000\241\000\130\000\233\000\000\000\000\000\240\000\225\000\000\000\241\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\242\000\000\000\000\000\240\000\000\000\000\000\241\000\130\000\000\000\000\000\242\000\248\000\225\000\000\000\000\000\239\000\233\000\000\000\242\000\000\000\000\000\130\002\188\000\239\000\000\000\240\000\225\000\000\000\241\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\248\000\000\000\000\000\239\000\232\000\000\000\000\000\000\000\000\000\000\000\248\002\190\000\242\000\240\000\000\000\000\000\241\000\239\000\248\000\000\000\000\002\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\194\000\129\000\000\000\240\000\000\000\231\000\241\000\129\000\248\000\000\000\232\000\231\000\000\000\000\000\000\000\000\000\232\000\000\000\242\002\196\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\240\000\248\000\130\000\241\000\000\000\000\000\000\000\225\000\242\000\000\000\000\000\233\002\198\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\129\000\000\000\232\000\000\000\231\000\000\000\242\000\240\000\000\000\232\000\241\000\000\000\000\000\000\000\242\000\000\000\248\000\130\000\000\000\000\000\000\000\240\000\225\000\130\000\241\000\239\000\233\002\200\000\225\000\000\000\000\000\000\000\233\000\000\000\000\000\248\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\002\202\000\000\000\000\000\000\000\000\000\000\000\000\000\248\000\000\000\242\000\000\000\000\000\130\000\000\000\239\000\248\000\000\000\225\002\204\000\130\000\239\000\233\000\000\000\129\000\225\000\000\002\206\000\231\000\233\000\000\000\000\000\000\000\232\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\248\000\000\000\000\000\231\000\000\000\000\000\129\000\000\000\232\000\000\000\231\002\208\000\000\000\239\000\248\000\232\000\000\000\000\000\000\000\240\000\239\000\000\000\241\000\000\000\000\004\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\129\000\000\000\231\000\000\000\231\000\000\000\000\000\232\000\000\000\232\000\130\000\000\000\000\000\000\000\000\000\225\000\129\000\242\000\240\000\233\000\231\000\241\000\129\000\000\000\240\000\232\000\231\000\241\000\130\000\000\000\000\000\232\000\000\000\225\000\000\000\130\000\000\000\233\000\000\000\000\000\225\000\000\000\000\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\239\000\000\000\000\000\000\000\000\000\242\000\240\000\000\000\000\000\241\000\130\000\248\000\130\000\240\000\000\000\225\000\241\000\225\000\239\000\233\000\000\000\233\004\211\000\000\000\000\000\239\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\130\000\000\000\000\000\233\000\000\000\225\000\242\000\000\000\000\000\233\000\000\000\000\000\248\000\242\000\000\000\000\000\000\000\000\000\248\000\239\000\000\000\239\000\129\004\213\000\000\000\000\000\231\000\000\000\000\004\215\000\000\000\232\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\000\000\000\248\000\000\000\000\000\000\000\000\000\000\000\000\000\248\000\000\000\000\000\000\004\217\000\000\000\240\000\000\000\000\000\241\000\000\004\219\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\000\000\000\000\233\000\000\000\000\000\000\000\242\000\240\000\000\000\240\000\241\000\000\000\241\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\240\000\000\000\000\000\241\000\248\000\239\000\000\000\000\000\000\000\000\000\242\000\000\000\242\000\000\000\000\004\221\000\000\000\000\000\000\000\000\000\000\000\000\000\248\000\000\000\000\000\000\000\000\000\000\000\242\000\248\000\000\000\000\000\000\004\223\000\242\000\000\000\000\000\000\000\000\000\000\004\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\248\000\000\000\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\227\000\000\004\229\000\000\000\000\000\000\000\000\000\248\000\000\000\000\000\000\000\000\000\000\000\248\000\000\000\000\000\000\000\000\004\231\000\240\000\000\000\000\000\241\000\000\004\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\235")) + ((16, "\001G\000\186\000\000\000\000\000\000\000%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001g\000\000\001u\001\n\000\000\001e\000\215\000\000\000\000\000\000\000m\000!\000\000\000\000\000,\000\166\001\002\000\000\000\000\001L\000\000\000\000\001\\\000\000\001\212\000\000\000\000\000\000\002Z\000\000\002h\000\000\000\000\000\000\002x\000\000\002\234\000\000\000\000\002\254\003b\000\000\000\000\003x\003\166\003\196\000\000\000\000\003\218\000\000\000\000\003\226\000\000\004\000\000\000\000\000\000\000\004\n\000\000\004.\000\000\004\150\004\226\000\000\000\000\005\018\000\000\005\136\005\146\005\162\000\000\000\000\006\018\000\000\006\024\000\000\000\000\0066\000\000\006:\000\000\000Z\000\000\002\164\003\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\197\003\128\000\000\000s\000\000\000\000\004\242\000\000\000\000\000\152\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\000\000\006\168\000\000\000\000\000\246\t\022\000\000\000\000\026\224\000\000\000\000\000\000\000\000\007<\000\000\007F\t\148\000\000\007`\000\000\000\000\007j\000\000\000\000\007\164\000\000\007\192\000\000\000\000\000\000\007\236\000\000\000\214\b\006\0028\000\000\000\150\000\000\000\000\000\000\003\242\000\000\002\228\000\000\000\000\000\000\012\236\000\000\000\000\b\144\000\2530\244\000\000\000\000\003\154\005\202\000\000\026\136\000\000\b\162!\016\t\174,\016&\240,h\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\218\011\192\000\000\000\000\019t\024\022\028\188\000\000\030d\000\142\000\000\000\000-\154\031\204\000\000\000\000\000\000\004l\000\000\015\024,h:B\000\000\000\000\0128\000\000\003$\000\000\0056\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\198\000\000\000\000\b\192\000\000\016\222\000\000\017^\000\000\026\200\000\000\027@\000\000\"\018\000\000$X\000\000%\156\000\000)\152\000\00000\000\0008 \000\000\000\007\000\000\000\000\000\000\000\000\022\002\000\000\000\000\000\000\000\0002h\000\0007\000\000\000FF\000\000I8\000\000K\024\000\000KH\000\000K\148\000\000K\220\000\000K\234\000\000K\250\000\000LB\000\000L\164\000\000L\242\000\000M\006\000\000M\132\000\000M\162\000\000\005\172\000\000\000\000\b\006\000\000\000\000\000\000\000\000\011\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\160C\000\000\000\002j\000\000\000\000\002\166\002\184\000\000\002l\b \000\000\000\000\bJ\b\200\000\000\000\000\t6\t@\tH\000\000\000\000\tr\000\000\000\000\t\154\000\000\t\172\000\000\000\000\000\000\t\182\000\000\t\202\000\000\t\244\000\000\t\252\000\000\000\000\n\024\n0\000\000\000\000\n2\nF\nJ\000\000\000\000\nR\000\000\000\000\nT\000\000\nj\000\000\000\000\000\000\nl\000\000\nr\000\000\nt\nv\000\000\000\000\n\134\000\000\n\138\n\144\n\148\000\000\000\000\n\152\000\000\n\156\000\000\000\000\n\168\000\000\n\202\000\000\004\146\011\166\000\000\n\208\000\000\n\212\014\020\000\000\n\216\000\000\000\000\n\218\000\000\n\220\000\000\n\224\000\000\000\000\000\000\n\228\000\000\n\236\002\238\000\000\000\000\000\000\n\238\000\000\011\138\000\000\000\000\016&\r\156\000\000\0048\000\000\b\182\000\000\000\000\020@\005\198\000\000\000\000\000\000\000\000\000\023\0068\000\000\007x\000\000\000\000\000\000\016>\000\000\018\022\000\000\026\002\000\000\000\000\000\000\000\000\000\000\000\000\027J\000\000\000\000\000\161\000\000\001\178\000\000\000\000\000\000\017`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002l\b\022\003d\000\000\n\244\000\000\n\248\005t\000\000\n\250\000\000\000\000\000\000\t\004\000\000\000\000\000\000\000\000\003\028\000\000\000\000\025n\000\000\000\000\000\000\000\t74\000\000 \1702\138\000\000\000\000\000\000\000\0007\1969\220\000\000\000\0002\220\000\000\000\000\000\000\007\1347\206C<\000\000C\162\000\000\000\000\000\0008^\021\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \254\000\000\000\000\000\000\000\000\016*8\178\023\170\000\000\"\240\000\000\000\000#D\000\000\004\244\000\000\000\000\r\182\000\000\000\000\000\000\024\208\000\000,\150\007T\000\000\000\000\000\000\000\000\000\000\000\000\000\000'\136\000\000\000\000\000\000\018\1943j+B\000\000\000\0000\"\000\000\005\204\000\000\019\220\000\000\000\000\000\000\025<\000\000-.\000\000\029\242\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\000\000\000M\190\000\000:\148\000\000\028f\000\000M\204\000\000M\236\000\000N\144\000\000N\148\000\000N\176\000\000N\248\000\000O`\000\000Ox\000\000O\170\000\000O\198\000\000PN\000\000Pj\000\000P\132\000\000\000\0003\158\000\000C\198\000\000\000\000\000\000\025P\000\000\000\000\000\000\000\000\000\000\000\0004t\000\000\000\000\000\000\000\000D\150\000\000\000\000\000\000\025\156\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\000\000 \220\000\000\000\181\000\000\000\000\000\000P\152\000\000P\234\000\000QB\000\000QR\000\000Q\168\000\000Q\170\000\000Q\246\000\000R\\\000\000R\190\000\000R\220\000\000R\234\000\000R\250\000\000S\020\000\000S\148\000\000\000\000\000\000\000\000\000\000#\"\000\000\000\000\022\194>\216\000\000\000\000D\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0030\000\000\000\000\000\000\000\000\000\145\000\000\000\000E\148\000\000\000\000\000\000\tZ\001h\000\000\000\000\000\000\000\000\000\000Vv\000\0005,\000\000\000\000\000\000\000\000\000\0005L\000\000\000\000\000\0005\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\002\000\000\011\004\007\200\000\000\011&\000\000\000\000\003\200\015\212\000\000\004\172\000\000\000\000\000\000\000\000\0048\000\000\0112\000\000\000\000\001g\003\158\000\000\t\132\000\000\000\000\000\000\001\006\000\000\017\014\000\160\011J\000\000\000\000\011R\011X\000\000\000\000\011Z\011\\\011x\000\000\000\000\011\130\000\000\000\000\011\138\000\000\011\154\000\000\000\000\000\000\011\160\000\000\011\178\000\000\011\182\000\000\011\188\000\000\000\000\011\194\011\206\000\000\000\000\011\210\011\216\012\004\000\000\000\000\012\n\000\000\000\000\012\014\000\000\012\018\000\000\000\000\000\000\012\"\000\000\012$\000\000\012&\012(\000\000\000\000\012*\000\000\0120\0122\0128\000\000\000\000\012<\000\000\012D\000\000\000\000\012H\000\000\012L\000\000\006\152\019T\000\000\012P\000\000\012X\022R\000\000\012x\000\000\000\000\012|\000\000\012\140\000\000\012\156\000\000\000\000\000\000\012\162\000\000\001\140\000\000\000\000\000\000\005\146\001\138\000\000\000\000\006\202\000\000\000\000\012\168\015\134\000\000\012\170\000\000\000\000\000\000\005.\000\000\000\000\000\000\004F\000\000\000\000\000\000\000\000\000\000\012z\015\224\000\000\012\174\000\000\012\192\018\028\000\000\012\210\000\000\000\000\014\016\012\228\000\000\000\000\012\238\012\246\000\000\000\000\012\250\r\000\r\n\000\000\000\000\r\016\000\000\000\000\r\018\000\000\r2\000\000\000\000\000\000\r4\000\000\r8\000\000\rV\000\000\rX\000\000\000\000\r^\rd\000\000\000\000\rl\rt\r\134\000\000\000\000\r\138\000\000\000\000\r\140\000\000\r\144\000\000\000\000\000\000\r\146\000\000\r\148\000\000\r\150\r\164\000\000\000\000\r\172\000\000\r\180\r\188\r\196\000\000\000\000\r\200\000\000\r\212\000\000\000\000\r\214\000\000\r\216\000\000\006\198\024x\000\000\r\226\000\000\r\232\025\216\000\000\r\244\000\000\000\000\r\246\000\000\r\252\000\000\014\000\000\000\000\000\000\000\014\026\000\000\014*\019`\000\000\0142\000\000\000\000\017V\020\254\000\000\0144\000\000\0146\0232\000\000\014:\000\000\000\000\000\000\000\000\000\000\000\000\000\000E\168\000\000-\250\000\000\000\000\000\000E\208\000\000\000\000\n\128\000\000\000\000\000\000\000\024\t\016\000\000\000\000:*\000\000\000\000\016\n\000\000\000\000\000\000\000\000\t\154\000\000\011\004\000\000\000\000\0314\000\000\000\000\000\000:\190\000\000\000\000\000\000\000\000\000\000%\246\000\000\000\000\000\000\000\253\000\000:\230\000\000\000\000\000\000\000\000\004\168\012\132\000\000;\016\000\000\000\000\000\000\000\000\0142\000\000;\244\000\000\000\000\000\000\000\000\001\"\000\000\b\250\000\000\000\0001<5\230\000\000\000\000\000\000Fb\000\000\000\000\000\000\001\140\000\000Fd\000\000\000\000\000\000F\184\000\000\000\000\004\"\000\000\031\216\000\0276:\000\000\000\000\000\000\006>\015f\000\000\000\000\000\000\000\000\000\000\000\0003\218\000\000\000\0004\162\000\000\000\000=\200\000\000\b6\000\000\020\006\000\000\000\000\000\000\026V\000\000-\200\000\000\000\000Gr\000\000\000\000\000\000\027\156\000\000\000\000\000\000\000\000\000\000\000\000(0\000\000(\228\000\000\000\000\000\000\007\138\000\000\000\000\000\000\000\000\000\000\000\000S\188\000\000;\200\000\000K(\000\000S\242\000\000T\006\000\000T<\000\000TX\000\000T\162\000\000T\214\000\000T\216\000\000T\250\000\000UV\000\000U\144\000\000U\236\000\000V\016\000\000V4\000\0009\138\000\000\000\000\000\000\004\134\000\000\006&\000\000\017\214\002D\n\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000G\166\000\000.\194\002\248\027\252\000\000\000\000\000\000< \000\000<\226\000\000=\002\000\000/\002/\198\r\196\b\238\000\000\b\002\012\222\000\000\000\000\000\000\012\232\000\000\000\000\018\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H4\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000/\218\000\0000\206\000\000\000\000\000\000\018\162\000\000\000\000\007\198\000\000\000\000\000\000 \140\000\142\000\000!@\000\000\000\000\000\000\000\000\004\026\000\000\000\000\019j\000\000\"\030\000\000\000\0000\140\000\000\000\000\000\000=L\000\000\000\000\012D\000\000\000\000\012 \000\000\000\000+\002\000\000\000\000\000\000=\158\000\000\000\000\000\000+\200\000\000\000\000\000\000\000\000>Z\000\000\000\000\000\000\000\000\004\184\015\228\000\000>\172\000\000\000\000\000\000\000\000\000\000\000\000\020 \000\000\000\000\005\142\000\000\021\026\000\000\012D\000\000\000\000\007\178\005\n\000\000\007\188\000\000\000\000\000\000\000\000\007\138\000\0001\180\000\000\"\210\000%#\134\000\000\000\246\000\000\021\178\000\000\022~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000$d\006\146%\024\000\000\000\000\000\000\007\148\000\000\023\134\000\000\b~\000\000\000\000\r\224\000M%\204\000\000\003J\000\000\024R&\170\000\000\000\000\024\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\220\011\012\000\000\t \000\000\000\000\000\000\000\000\005\236\000\000\025Z\000\000\000\000\000\000\011\240Hv\000\000\000\000\000\000\t\222\000\000\000\000\000\000\000\000\000\000\000\148\015T\000\000\000\000?h\000\000\000\000\014\196\000\000\018\222\000\000\000\000,\240\000\000\000\000\000\000?\130\000\000\000\000\000\000\000\000?\224\000\000\000\000\006\184\022f\000\000\000\000@>\000\000\000\000\t\200+N\000\000\023l\000\000\000\000@\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\216\000\000\000\000\000\000@\182\000\000\000\000\004<\000\000\000\000\024$\000\000\000\000-\254\000\000\000\000\000\000A2\000\000\000\000\000\000\000\000A\212\000\000\000\000\bL\024.\000\000\000\000BH\000\000\000\000\t\232\000\000\000\000\000\000\000\000\004<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\158\000\000\026b\000\000\000\000\000\000H\202\000\000\012\158\000\000\000\000\000\000\003n\000\000\020\132\000\000\000\000\005\144\026\248\000\000\028\000\000\000\000\000\000\000\005\192\000\000H\238\006\192I<\000\000I\138\000\000\000\000\000\000\007\020\000\000J \007D\000\000\000\000)z6\012\000\000\b\144*.\000\000\000\000*\226\000\000\000\000\000\000\b\216\000\000JP\b\232\000\000\000\000\020\234\t&\029^\000\000$\016\000\000\000\000\000\000\t\\\000\000J\218\t\128\000\000\000\000\000\000\001\021\000\000\001\020\000\000\000\000\000\000\000\000\000\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\146\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0007\000\000\000\000\n\238\000\000\015\020\000\000\000\000\000\000\015\028\000\000\000\000\000\000\000\000\000\000\011\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015 \000\000\000\000\015\014\000\000\012\128\000\000\000\000\014\146\000\000\001`\014\170\004\238\000\000\000\000\005\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005h\002\236\000\000\000\000\tR\000\000\000\000\000\000\014\254\000\000\000\000\019\244\023j\000\000\000\000\000\000\000\000\023\240\024\152\000\015\000\000\000\000\000\000\024\166\000\000\000\000\000\000\000\000\000\000\000\000\001\178\000\000\000\000\t\030\000\000\000\000\014n\000\000\027F\000\000\000\000\000\000\000b\000\000\000\000\017\250\000\000\000o\000\000\000\000\000\000\000\000\n\236\027\164\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003x\028\158\000\000\000\000\000\000\000\000\028\236\028\246\002\226\000\000\030\"\000\000\000\000\000\000\000\000\000\000\000\000\005~\000\000\015V\000\000\000\000\000\000\018~\000\000\003l\000\000\000\000\000\000\012\188\000\000\000\000\030\214\031\190\006\\\000\000 \"\000\000\000\000\000\000\000\000\000\000\000\000\000\210\014\134\000\000\014\140\000\000 r\007 \000\000!^\000\000\000\000\000\000\000\000\014\150\000\000\015\030\000\000\000\000\000\000\006\196\000\000\000f\014\226\005D\000\000\000\000\000\000\000\r\005\142\000\000\000\000\000\000\000\000\000\000\007\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003b\000\000\000\000\002\194\000\000\t\136\015\130\005(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\234\000\000\000\000\018T\"h\000\000\000\000\000\000\000\000\"\232\000\000\000\000\007:\000\000\007\146\012\162\000\000\000\000\000\000\021N\000\000\000\000\000\000\000\000\000\000\000\220\022.\000\000\000\000\023&\000\000\000\000\000\000\000\000\005\154\000\000\000\000\001*\000\000\000\000\000\000\006\184\000\000\000\000\000W\000\000\000\000\000\000\000\000\000\000\000\000\000\000B\154\000\000\000\000\000\000\001\224\000\000\000\000\000\000\000\000\000\000\000\026\0004\011\172\012\192\000\000\006\146\007\174\tr\t\140\000\000\000\000\000\000\000\000\000\000\000\000\br\028\222\000\000'^\007b\000\000\000\000\n\132\000\000\029\146\000\0009\188\000\000\000\000\b\214\030F\000\000(\018\000\000\b\220(\198\000\000\000\000\000\000\011&\017&\000\000\000\000\000\000\000\000\006\014\000\000\007p\000B\000\000\000\000\000\204\018\236\000\000\019\152\000\000\000\000\016>\000\000\018\022\000\000\000\000\022\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\030\000\000\000\000\000\000\011\018\000\000\030\250\000\000\r\224\015@\000\000\000\000\000\000\000\000\000\000\005J\000\000\000\000\000\000\000\000\000\000B\174\000\000\000y\000\000\000\000\000\000\000\000\000\000\000\178\000\000\014J\001\186\015\000\000\000\002\196\016B\000\000\006l\000\000\004V\000\000\004\214\000\000\006h\000\000\r\224\000\000\000\000\000\000\000\000\000\000\006\232\000\000\t\130\000\000\bz\000\000\r\224\015\182\000\000\000U\000\000\015\160\bj\000\000\014T\000\000\014X\000\000\000\000\000\000\000\000\000\000\000\000\014\\\000\000\014`\000\000\014d\000\000\000\000\000\000\000\000\000\000\014n\000\000\000\000\000\000\000\000\000\000\015\214\014\146\000\000\000\000\014\202\000\000\000\000\014\158\t\146\016$\000\000\0164\000\000\000\000\002b\004H\000\000\014\236\000\000\000\000\015$\000\000\000\000\000\000\000\000\000\000\000\000\016\026\014\204\000\000\000\000\000\000\015\004\014\212\n\028\007\166\015\004\015@\000\000\000\000\014\226\nN\b\156\015\018\015L\000\000\000\000\011\018\016<\000\000\016D\000\000\016j\000\000\000\000\016J\000\000\000\000\016P\000\000\000\000\000\000\000\000\016^\000\000\016\130\000\000\000\000\000\000\016\148\000\000\000\000\000\000\016\150\000\000\000\000\000\000"), (16, "\002;\003B\000\018\005\184\004\179\006\131\004\198\007d\000\025\000\129\000\129\007\021\007\022\002X\000\231\006\192\002Y\003D\000\r\000\235\006\170\b\132\000\174\005\153\000\174\000\017\002;\004M\005\151\005\127\004\179\b\"\004\198\006\167\b#\000\007\b\133\000p\002;\007\233\000\016\000\017\002<\007\023\006\168\007\234\002=\000\174\000\174\006\171\006\186\006\187\006\193\007\235\007\024\005M\004{\006\168\000\129\003$\000\005\000\174\006\171\006\186\006\187\005N\007\199\004\181\000\174\006\241\006\186\006\187\007f\004\182\000\130\000\130\000r\002Z\000p\000\024\000\225\004N\004{\002[\000\129\007m\000\233\005\194\0056\000h\001\186\005N\002\182\004\181\003\n\001\227\007\181\007\182\007\007\004\182\005J\b'\002;\002\174\003\183\001\223\004\179\002>\004\198\000\174\000\174\0030\005K\002?\0056\003\193\001\206\000q\007\186\002e\000\239\b(\007\b\000\130\000\174\007\011\006\186\006\187\006\188\007\235\b)\005M\000\030\005\198\007\150\004\203\000h\000\174\001H\0058\007\249\006\188\000\174\005\226\000\183\003\193\000\004\b\005\006\188\000\130\007\237\007n\001\186\001\186\000i\002\181\007W\006\242\004{\007\189\007s\006\194\007o\007p\005\153\0058\003\011\005N\000\174\004\181\000\029\000\005\001\224\007\238\005:\004\182\007\189\002\176\b\141\b<\007X\007[\006\186\006\187\007t\004\195\007w\006\186\006\187\005?\0056\000\004\000\129\000\240\005O\005\161\004\196\005\200\005\165\007l\005:\000i\000\240\000\240\006\188\002f\000\241\002\178\000&\b\001\005\147\004\195\004\249\004\250\001M\005?\000\005\0036\001\224\000\240\005O\007\239\004\196\002\171\007q\002\213\001H\007\172\000l\007\160\007\240\000\240\000\174\000\174\002\172\005A\b\014\005\128\000\242\005\159\000\129\0058\005W\007\210\000\231\001\207\005\182\b=\001\208\000\232\001\230\000\149\000\174\001O\005w\004\207\001S\000\130\001H\006\189\006\188\005A\b+\005R\b\016\006\188\007\163\001\017\005W\000#\002\181\004Y\b\018\004\208\006\251\000l\005:\000\220\004\209\004s\005w\004\207\004\210\002\243\006\214\007\201\000\244\004\195\004\211\007\252\001\018\005?\007\253\001S\001\019\000\240\005O\b>\004\196\004\208\001S\000\246\000w\002;\004\209\000\130\007\240\004\179\004\210\004\198\000\225\003E\b@\002\183\004\211\000\"\000\233\b:\000y\000\174\001\179\001\180\0039\001\184\007\025\000\174\007r\003D\002\184\006F\004M\005\151\005\127\005\232\0038\006\215\005\156\005A\007\174\005R\bB\005\249\001\237\003\167\005W\001\238\003\r\003\204\bD\000\141\000\239\000h\000%\000\183\003\171\003\169\005w\004\207\007\252\004{\000(\007\253\001\186\006>\b\004\000y\001P\002;\005N\001S\004\181\004\179\000\b\004\198\001S\004\208\004\182\003\204\007\191\001\250\004\209\007\192\007\132\000\174\004\210\000\131\007\166\000\144\001\186\000\174\004\211\0056\003=\002;\007\235\b.\005\127\004\179\000h\004\198\001S\007\196\001\225\007v\000\132\000\174\001\179\001\180\003'\001\184\000\174\001\179\001\180\001\181\001\184\000\129\000i\006\135\003\011\000\231\000*\000\129\005\139\004{\000\237\002X\006\222\007t\002_\007w\006\186\006\187\005N\000\240\004\181\006H\000\241\005\166\004\203\000\183\004\182\001H\0058\001M\000\183\006\241\006\186\006\187\001\186\b9\006\223\006\186\006\187\001\186\000\145\0056\003\172\003\172\002\174\007\189\004\181\000h\005\184\000i\001S\001S\004\182\bv\000\242\000\174\001\179\001\180\001\240\001\184\000\129\001\255\006\252\005:\000\222\003!\000\130\0056\001N\007s\001S\000\225\000\130\000.\004\195\002Z\000l\000\233\005?\007\007\0000\002[\000\240\005O\000\174\004\196\006\255\005\168\0004\000\183\007\021\007\022\0058\007t\006\188\007w\006\186\006\187\001\186\005\147\002\001\001\224\000\248\007\b\000h\001\187\007\011\006\186\006\187\005\145\006\188\000\239\000i\000\249\004\203\006\188\003*\002e\0058\007$\001\255\000j\0075\000l\005A\000\130\005\128\005:\005\159\001\190\000\225\005W\005\187\007\024\b}\005\182\000\226\001\237\004\195\000h\005Q\000h\005?\005w\004\207\0006\000\240\005O\b4\004\196\000\134\000\146\005K\005:\002;\000;\003\186\007\240\004\179\002\000\004\198\000\137\004\208\005@\004\195\000h\000y\004\209\005?\000i\000\239\004\210\000\240\0068\006\188\004\196\000\174\004\211\003\188\004\249\004\250\007\235\b.\005\127\000\129\006\188\000l\bu\005A\005\147\005\128\001\187\b6\001R\000\240\005W\001\187\000\241\0033\b8\000\240\001S\003\189\002f\000i\000:\000i\005w\004\207\006I\004{\001\186\000\005\000m\005A\001\190\000C\001\238\002;\005N\001\190\004\181\004\179\001\237\004\198\001\238\004\208\004\182\001\237\000\242\000i\004\209\000h\000\129\004\207\004\210\b3\0035\006\226\000@\000\174\004\211\0056\000l\002;\007\235\b.\005\127\004\179\000\130\004\198\004t\004\208\000\240\000?\001\187\000\241\004\209\000\243\005x\001\186\004\210\001\255\002l\001\255\000B\000\129\004\211\001\186\000E\000\231\006\207\003\186\005\141\004{\000\237\000o\000\244\000l\001\190\000l\002m\001<\005N\000G\004\181\003\000\001\237\000\242\000K\002o\004\182\000\246\0058\003\190\007\130\002p\000i\000\130\000\004\b5\002\001\007\150\002\001\000l\007\031\0056\000M\003?\002\174\007d\004\181\0033\003\193\006\207\006H\001S\004\182\003\189\000\174\001\179\001\180\001\245\001\184\000\005\000\129\005\133\001\186\005:\000\231\004\252\000\130\0056\001\249\000\237\000\133\000\225\0070\005K\004\195\000\129\000\129\000\233\005?\000\222\003\029\005l\000\240\005O\b4\004\196\0034\007e\000\183\007W\b\026\b\027\0058\007\240\000Q\000\174\0071\001\186\006=\005@\0074\006\186\006\187\000\184\006\210\004l\000l\006\208\005\209\000h\007f\000\239\001\161\007X\007[\006\186\006\187\007\158\0058\001\235\005K\006#\004\249\004\250\005A\000\130\005\128\005:\b6\000\228\000\225\005W\000P\000\129\0069\b8\000\233\004\179\004\195\004\180\000\130\000\130\005?\005w\004\207\000\225\000\240\005O\b4\004\196\006\208\000\226\000\174\005:\002;\006;\000S\007\240\004\179\b\031\004\198\002:\004\208\005@\004\195\003\173\001\203\004\209\005?\007\168\000\239\004\210\000\240\001\231\000i\004\196\000\174\004\211\000\129\006\188\000\134\007\235\b.\005\127\b+\000\239\000h\001\206\005A\005@\005\128\000\137\b6\006\188\000\240\005W\000y\000\241\000\130\b8\004\181\000\129\007\204\005\171\003\175\006\208\004\182\005w\004\207\006R\004{\006\241\006\186\006\187\005A\000]\001\238\007\189\002;\005N\000X\004\181\004\179\001\203\004\198\006T\004\208\004\182\000W\000\242\001\226\004\209\006\211\006U\004\207\004\210\b7\007g\007Z\b1\000\174\004\211\0056\000\130\001\206\007\235\b.\005\127\000l\006T\005\250\000i\004\208\000\240\001\187\003\191\000\241\004\209\000\243\001\186\007z\004\210\007X\007[\006\186\006\187\000\130\004\211\000\240\002W\007\150\000\241\000\129\004\251\004{\007^\002X\000\244\001\190\002_\003\204\003\193\000\245\005N\000Z\004\181\001\237\000\\\000\242\000\136\006\188\004\182\000\246\0058\000\174\007\216\007s\000\129\0076\007>\b?\002<\000_\000\242\000a\002=\0056\005K\000\174\006\241\006\186\006\187\000\174\007j\007\242\007\169\001\207\000\243\004\195\001\208\007t\003\173\007w\006\186\006\187\000l\000\240\001S\005:\004\196\004\249\004\250\005\171\007d\007\176\007\177\000\244\000\130\b\r\004\195\002Z\001;\006\188\005?\007\204\006;\002[\000\240\005O\b4\004\196\000\246\000\174\001\179\001\180\003,\001\184\0058\007\240\000h\003\174\000\129\000\130\006\\\005@\000\231\002>\006\165\006\166\000h\000\237\003\149\002?\001\207\005\173\007i\001\208\002\161\007\208\006^\007\249\001\243\002e\001\203\001S\000\129\000\183\b\006\006\188\005A\001\205\005\128\005:\b6\004\026\001\186\005W\007M\007f\000\134\b8\006\188\007\153\004\195\001\206\006_\004\247\005?\005w\004\207\000\137\000\240\005O\b4\004\196\000y\004\249\004\250\001\238\002;\001M\006^\007\240\004\179\000i\004\198\000\130\004\208\005@\006b\000h\000\225\004\209\000\148\000i\005\142\004\210\000\233\000\154\000\129\005\142\000\174\004\211\000\222\003\023\006^\007\235\b.\005\127\000h\000\130\000\153\006)\005A\000\129\005\128\000\156\b6\000\231\004\206\005W\001\186\b\137\000\232\b8\000\240\004\249\004\250\002f\004\249\004\250\000\239\005w\004\207\005\144\004{\b_\000h\005\179\005\143\006\194\005E\002\171\002;\005N\000\159\004\181\004\179\000h\004\198\000\240\004\208\004\182\002\172\000h\000i\004\209\000h\005\029\000\161\004\210\bC\b\007\005\176\000\130\000\174\004\211\0056\000l\000\225\004M\005\151\005\127\003\204\000i\000\226\002j\005\181\002k\000\130\007\207\000\165\007\156\000\174\000\225\007g\001S\b\b\002l\007\252\000\233\000\129\007\253\001\207\003<\002X\001\208\004O\002_\004{\001S\005\179\000i\b}\001S\006\254\002m\001U\005N\000\239\004\181\002n\001\187\000i\000\240\002o\004\182\000\241\0058\000i\000h\002p\000i\000h\000\239\002\145\006\225\007\212\001Z\000l\007\204\0056\002\237\000\129\000\174\007}\001\190\000\231\004\178\b+\005\180\005%\000\235\007\204\001\237\b\144\005!\005\203\000l\000\242\006\223\006\186\006\187\005:\006m\000\174\000\130\000\129\001\249\002Z\000\140\004\179\002\254\004\198\004\195\002[\004O\007~\005?\007\127\006o\005$\000\240\005O\b4\004\196\005\029\007\226\000\243\000\174\007\231\005\203\0058\007\240\005\225\000i\005\205\000l\000i\005@\006p\001Y\000\240\000l\bA\000\241\000l\000\244\000\130\006s\007\128\002e\001>\000\225\bb\001\015\006o\000\240\006\000\000\233\000\241\007\129\000\246\006\003\005A\006^\005\128\005:\b6\000\184\005\204\005W\006\t\000\145\004\181\b8\b}\000\242\004\195\006\188\004\182\006{\005?\005w\004\207\003%\000\240\005O\000\184\004\196\006A\005\165\000\242\000\239\002;\006\n\001b\006}\004\179\006\012\004\198\001_\004\208\005@\001\193\001^\007\219\004\209\006~\000l\000\174\004\210\000l\006/\005\030\004M\000\174\004\211\005K\bs\000\134\004M\005\151\005\127\006}\006\129\001a\000\184\005A\006/\005\128\000\137\005\159\000\184\000\240\005W\000y\002f\0062\005_\000\248\006^\004\203\001\251\004{\001H\001d\005w\004\207\004P\004{\000\251\0061\001\186\000h\001f\007\206\006\252\002;\005N\001j\004\181\004\179\000h\004\198\001S\004\208\004\182\0060\007\205\001l\004\209\003\012\004W\006\182\004\210\000\240\b\015\004g\000\241\000\174\004\211\0056\000\134\000\151\004M\005\151\005\127\b\136\005K\006\183\001n\004\195\000\174\000\137\001p\006\185\002l\007\199\000y\000\240\006\r\004l\004\196\002\011\007\020\006\186\006\187\003A\001u\b\173\000\242\006\183\b\143\004{\002m\001S\005\147\004m\000i\003\014\001t\001}\005N\002o\004\181\b\174\004N\000i\003\017\002p\004\182\001z\0058\001y\000h\001\186\001S\001|\001\127\001\017\b~\004q\000\174\001\179\001\185\0056\001\184\000\129\006\014\001\129\001\133\000\231\0064\001\135\001\139\001\138\000\235\004\130\000\244\000\174\006(\004\207\001\025\001\141\007\199\001\151\001\019\005:\001\146\000\174\001\145\000\129\001\148\000\246\001\150\004\179\000\183\004\198\004\195\004\208\001\153\005O\005?\006\188\004\209\001\186\000\240\005O\004\210\004\196\005\163\005\165\000l\000\174\004\211\000h\0058\001\155\005\225\000i\001\160\000l\001\166\005@\001\165\001\168\001\170\000\129\001\172\b~\001\176\000\231\000\130\000h\001\254\001\183\000\235\000\225\001\242\001\015\001\248\001\247\0065\000\233\006J\003)\003/\006\003\005A\005W\005\128\005:\005\159\005_\b~\005W\006\t\000\145\004\181\005_\000h\005w\004\195\003.\004\182\000h\005?\005w\004\207\003;\000\240\005O\003\198\004\196\005\202\005\165\004O\000\239\002;\006\n\000i\003I\004\179\006\012\004\198\003N\004\208\005@\003M\003V\003S\004\209\000\130\000l\007\200\004\210\006\200\000\225\000i\001\015\000\174\004\211\000\184\000\233\003R\004M\005\151\005\127\004O\003U\000h\001C\005A\003X\005\128\000h\005\159\000\174\004\\\005W\006\201\003Z\007\199\005_\003^\000i\006\204\006\186\006\187\007\007\000i\005w\004\207\003`\004{\003b\007\236\000\239\003d\000\174\000\181\003i\002;\005N\004s\004\181\004\179\003h\004\198\003q\004\208\004\182\003n\007\b\000l\004\209\007\011\006\186\006\187\004\210\000\240\007\209\001\187\000\241\000\174\004\211\0056\000\134\001\158\004M\005\151\005\127\000l\000\183\003m\000i\004\195\003p\000\137\003s\000i\003u\001\186\000y\000\240\006\r\001\190\004\196\002\011\003y\003{\003\127\003~\003\129\001\237\000\242\003\139\003\134\004{\000l\003\133\005@\003\136\007\201\000l\006\188\003\138\005N\003\141\004\181\003\143\001S\003\148\002\251\005\028\004\182\003\154\0058\000\129\005 \000\240\001S\002<\000\241\001\017\000h\002=\000\174\001\179\001\189\0056\001\184\003\153\006\014\003\156\006\188\000\129\006\022\005l\000h\000\222\002\253\003\158\000\244\000\184\006(\004\207\001\025\001?\005\029\003\160\001\019\005:\003\164\005\029\000\242\003\181\003\180\000\246\003\197\005c\000\183\004l\004\195\004\208\000h\007\204\005?\003\203\004\209\001\186\000\240\005O\004\210\004\196\006E\005\165\003\202\005q\004\211\000h\0058\004O\000\130\001\017\0040\003\206\002>\005@\001\249\000i\003\211\002;\002?\000\184\003\210\004\179\003\219\004\198\007\200\003\216\000\130\005u\000\244\000i\003\215\000\225\001\025\003\218\003\221\004u\001\019\000\226\005A\000\174\005\128\005:\005\159\000\246\007\235\005W\005M\006\216\004O\005_\003\223\003\227\004\195\003\229\005&\000i\005?\005w\004\207\004y\000\240\005O\005\030\004\196\b\011\005\165\007\201\005\030\003\231\003\233\000i\000\239\003\238\004{\001S\003\237\004\208\005@\000h\003\246\0079\004\209\005N\003\243\004\181\004\210\006\203\001\255\001\190\005\029\004\182\004\211\003\242\000\145\003\245\003\248\001\237\003\250\003\254\004\000\004\004\b;\005A\000l\005\128\0056\005\159\004\003\002;\005W\006\201\004\006\004\179\005_\004\198\004\016\006\204\006\186\006\187\004\011\000\129\005w\004\207\004\n\002X\004\r\002\001\002_\002\171\000l\000\174\004\015\004\018\004\020\007s\007\235\000\240\005M\004\025\002\172\004\208\004\031\000\174\000i\000l\004\209\006\222\004\030\004!\004\210\000h\004#\001\187\004%\000\240\004\211\0058\000\241\007t\000\129\007w\006\186\006\187\004\179\004{\004\198\004)\007\208\005'\005l\006\223\006\186\006\187\005N\004/\004\181\001\190\005\030\004.\0044\004:\004\182\0049\006\175\001\237\000\130\005(\006\179\002Z\000\242\006\220\005:\b,\004l\002[\006\188\0056\000\174\001\179\001\180\003\178\001\184\004\195\000\134\001\163\006\199\005?\006\213\007\001\005q\000\240\005O\b-\004\196\000\137\000i\007/\000l\002\173\000y\007H\007\240\000h\007J\000\130\002d\004\181\b0\007T\007V\002e\000\183\004\182\005u\000\184\007`\000\174\0032\007|\006\188\001\186\000h\000\174\001\179\001\180\003\195\001\184\0058\b\024\006\188\004|\bF\005A\bJ\005R\b2\b^\000\129\b\\\005W\bV\000\231\bX\b8\bZ\004O\000\235\000h\b`\002;\000\183\005w\004\207\004\179\004\128\004\198\000\183\000\174\001\179\001\186\bf\001\188\005:\004g\004U\001\186\bg\000i\bl\000l\004\208\000\174\bm\004\195\004\203\004\209\007\235\005?\005M\004\210\br\000\240\005O\b-\004\196\004\211\000i\004l\bq\by\b{\000\183\007\240\000\240\b\129\b\130\002f\b\134\b0\b\135\001\186\b\138\000\130\005\244\b\139\004{\b\142\000\225\b\145\001\015\b\146\b\163\000i\000\233\005N\b\152\004\181\b\161\b\157\002g\002\244\b\160\004\182\005A\004\195\005R\b2\000\129\b\169\b\167\005W\000\231\000\240\b/\b8\004\196\000\232\0056\b\171\b\176\007\135\000l\005w\004\207\002j\000\000\002k\000\239\000\000\004\205\000\000\002;\006\229\000\000\001S\004\179\002l\004\198\000\000\000\184\000l\004\208\000\000\000h\000\000\000\000\004\209\000\000\000\000\000\000\004\210\000\000\000\000\000\174\002m\005\227\004\211\001\187\004M\002n\005M\000\000\000\000\002o\000\000\000\000\000l\000h\0058\002p\007\204\000\129\000\130\002\145\004\207\000\231\000\000\000\225\000\000\0045\000\232\001\190\000\000\000\233\000\000\000\000\004O\004{\000\000\001\237\000\000\000\000\004\208\000\000\000\174\000\000\005N\004\209\004\181\000\000\000\000\004\210\001\187\005:\004\182\002\229\000\000\004\211\000i\000\000\000\240\000\184\000\000\000\241\004\195\000\000\000\000\000\239\005?\0056\001\190\000\000\000\240\005O\b-\004\196\001\190\005y\001\237\000\000\000\184\002;\000i\007\240\001\237\004\179\000\130\004\198\002\231\b0\006M\000\225\000\000\000\000\005\197\000\242\004V\000\233\000\000\000\000\000\000\005}\000\000\000\174\000\000\000\000\001\222\000\000\004M\000\000\005M\001\190\001\253\000h\005A\001\203\005R\b2\000\000\001\237\0058\005W\001\229\000\000\001\017\b8\000\000\000\000\000\000\000\000\000\000\000\239\000l\005w\004\207\007\n\001\206\004{\000\174\001\179\001\180\003\200\001\184\000\244\000\000\000\000\005N\001\025\004\181\000\000\000\240\001\019\004\208\000\241\004\182\005:\000l\004\209\000\246\007\b\000\000\004\210\007\011\006\186\006\187\000\000\004\195\004\211\000\000\0056\005?\000\000\000\183\000\000\000\240\005O\000\000\004\196\000i\000\000\007\007\001\186\000\000\002;\000\000\000\242\000h\004\179\000\000\004\198\005\195\005\186\000\000\000\000\005\197\000\000\007\208\005F\004g\000\129\0073\000\000\000\000\002X\007\b\000\174\002_\007\011\006\186\006\187\004M\005H\005M\000h\000\240\000\000\005A\000\241\005R\005\188\0058\000\174\004l\005W\0071\000\000\000\000\005_\0074\006\186\006\187\000\000\000\000\000\248\000\000\005w\004\207\000\000\004m\004{\000\000\006\188\000\174\000\000\000\253\000\000\001\249\000\000\005N\000\242\004\181\000i\000l\000\000\004\208\005:\004\182\000\000\000\000\004\209\000\000\000\000\004q\004\210\000\130\001\207\004\195\002Z\001\208\004\211\005?\0056\000h\002[\000\240\005O\001S\004\196\000i\000\000\000\000\000\000\000\000\002;\000\000\000\000\006\188\004\179\000\129\004\198\005#\005\186\000\222\002\250\000\000\000\000\000\000\000\248\005T\000\000\000\174\001\179\001\180\004,\001\184\000\174\000\000\006\188\000\255\002e\004M\005U\005\127\000\000\007\249\000\000\005A\000\000\005R\005\188\000\000\b\000\0058\005W\000\000\005\029\000\000\005_\000\174\000\000\000\000\000\000\000\000\000\000\000\183\005w\004\207\000i\001\187\004{\000\129\000\000\001\217\001\186\002X\000\000\000\000\002Y\005N\000\000\004\181\000\000\000l\000\130\004\208\000\000\004\182\005:\000\225\004\209\000\000\000\129\001\190\004\210\000\226\004\179\000\000\004\180\004\195\004\211\001\237\0056\005?\000\000\002;\000\145\000\240\005O\004\179\004\196\004\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\130\000\000\006\222\000\240\005\132\000\000\002f\000\174\000\000\000\239\000\000\007\249\004M\005U\005\127\000\000\000\130\007\141\007\251\002Z\000\000\000\000\000l\000\174\005\030\002[\006\223\006\186\006\187\005A\000\000\005R\005\134\0058\000\000\000\000\005W\000\130\000\000\004\181\005\136\004{\000\000\000\000\000\000\004\182\000\000\000\000\005w\004\207\005N\000\000\004\181\000\184\002j\000\000\002k\000\174\004\182\000\000\000\000\002e\004M\002\157\001S\000\000\002l\004\208\005:\005\235\000\000\000\000\004\209\0056\007\252\000\000\004\210\007\253\000\000\004\195\000\000\000\000\004\211\005?\002m\001S\000\000\000\240\005O\002n\004\196\004{\000\240\002o\001\203\000\241\000\134\003\146\000\000\002p\001\186\001\213\000\000\002\158\005@\006\188\000\000\000\137\000\174\000\000\002;\001\187\000y\004M\004\179\001\206\004\198\000\000\000\174\001\179\001\180\0042\001\184\000\000\0058\005\135\000\000\000\242\000\000\005A\000\000\005\128\000\174\005\129\000\000\001\190\005W\004M\005U\005\127\005_\000\000\004{\001\237\000\240\000\000\000\000\002f\005w\004\207\000\000\001\186\000\183\000\000\000\000\000\000\000\000\004\195\000\000\005:\007\252\001\186\000\000\007\253\000\000\000\240\004{\004\208\004\196\000\000\004\195\001S\004\209\007s\005?\005N\004\210\004\181\000\240\005O\000\000\004\196\004\211\004\182\000\000\002;\002;\000\000\000\000\002<\004\179\000\000\004\198\002=\000\000\005@\000\000\007t\0056\007w\006\186\006\187\000\000\000\000\000\000\006K\000\000\000\000\000\174\000\000\000\000\000\000\000\000\004M\005\151\005\127\001\214\000\000\000\000\000\000\005A\000\000\005\128\000\000\005\129\002\155\000\129\005W\006\235\005O\000\231\005_\000\000\000\000\000\000\000\235\000\000\000\000\000\000\005w\004\207\001\232\004{\000\000\001\207\004\197\000\000\001\208\000\000\0058\002\174\005N\000\000\004\181\002>\001S\000\000\000\000\004\208\004\182\002?\000\000\000\000\004\209\000\000\000\000\000h\004\210\000\000\000\000\000\000\000\000\006J\004\211\0056\000\000\000h\005W\006\188\000\000\005O\005_\000\000\000\000\005:\007s\000\000\002\232\002;\005w\000\000\000\130\004\179\000\000\004\198\004\195\000\225\000\000\000\000\005?\000\000\000\000\000\233\000\240\005O\000\000\004\196\000\000\000\000\007t\000\174\007w\006\186\006\187\000\000\004M\005\151\005\127\001\187\000\000\005@\000\000\002;\006v\002\176\0058\002<\000\000\005W\000\000\002=\000i\005_\000\000\000\000\000\000\000\239\000\000\000\000\000\174\005w\000i\001\190\000\000\004{\005A\000\000\005\128\000\000\005\129\001\237\000\000\005W\005N\002\178\004\181\005_\000\000\000\000\000\000\005:\004\182\000\000\000\000\005w\004\207\000\000\000\000\000\000\000\145\002\171\004\195\002\216\000\000\000\000\005?\0056\000\000\000\240\000\240\005O\002\172\004\196\004\208\005\158\000\000\000\000\002\174\004\209\000\000\006\188\002>\004\210\000\000\000\000\000\000\005@\002?\004\211\007\154\000\174\001\179\001\180\0047\001\184\000l\000\000\000h\002\219\007s\000\000\007\249\000\000\000\000\000\000\000l\000\000\002\181\b\003\000\240\002;\005A\000\241\005\128\004\179\005\159\004\198\0058\005W\000\000\000\000\000\000\005_\007t\000\183\007w\006\186\006\187\000h\000\000\005w\004\207\000\174\001\186\000\000\006\222\000\000\004M\005\151\005\127\000\000\000\000\001\022\000\000\000\242\000\000\000\000\000\000\000\000\004\208\002\183\002\176\005:\000\000\004\209\000\000\000\000\000\000\004\210\006\223\006\186\006\187\000i\004\195\004\211\002\184\004{\005?\000\000\000\134\003\151\000\240\005O\001\017\004\196\005N\005\160\004\181\000\000\000\000\000\137\002\178\000\129\004\182\000\000\000y\000\222\002\249\005@\000h\000\000\000\000\000\244\000i\000h\000\184\001\023\002\171\0056\002\223\001\019\007\161\006\222\000\000\006\188\000\240\000\000\000\246\002\172\000\000\000\000\005\251\002;\005A\000\000\005\128\004\179\005\159\004\198\000\000\005W\000\000\000\000\000\000\005_\000\000\006\223\006\186\006\187\000\000\000\000\000h\005w\004\207\000\174\000\000\000l\000\000\006\188\004M\005\189\005\127\002;\000\000\002\181\000\000\004\179\000\130\004\198\0058\007\252\004\208\000\225\007\253\000i\000\000\004\209\000\000\000\226\000i\004\210\001S\002\226\000\000\000\174\000\000\004\211\000l\004{\004M\005\189\005\127\000\000\000\000\000\000\000h\000\000\005N\000\000\004\181\000\000\000\000\000\000\000\000\005:\004\182\006\222\002\183\000\000\000\000\001\187\000\000\000\239\006\222\000\000\004\195\000i\000\000\004{\005?\0056\000\000\002\184\000\240\005O\006\188\004\196\005N\005\178\004\181\006\223\006\186\006\187\000\000\001\190\004\182\000\000\006\223\006\186\006\187\005@\000\000\001\237\005\191\000\000\007\164\000\184\000\000\000l\000h\0056\000\000\000\000\000l\000\145\000\000\000\000\000\000\000\000\000h\000i\000\000\006\004\000\000\002;\005A\000\000\005\128\004\179\005\159\004\198\0058\005W\005\193\000\129\000\000\005_\0023\000\231\005\211\000\000\006\233\000\000\000\235\005w\004\207\000\174\000\000\000\000\000\000\000l\004M\005U\005\127\000\000\000\240\000\174\000h\000\241\000\000\000\000\0058\000\000\004\208\000\000\000\000\005:\000\000\004\209\006\188\000\000\000\000\004\210\000\000\000i\000\000\006\188\004\195\004\211\000\000\004{\005?\000\000\000\000\000i\000\240\005O\000h\004\196\005N\000\242\004\181\000\000\000\000\000l\000\000\005:\004\182\000\184\000\130\000\000\000\000\005@\000\184\000\225\000\000\001\015\004\195\006\248\000\000\000\233\005?\0056\000\000\006\026\000\240\005O\000\000\004\196\006*\000\000\000\000\000i\000\000\000\134\004\023\000\000\005A\000\000\005\128\000\174\005\192\005@\000\000\005W\000\137\000\000\000\000\005_\000\000\000y\000\000\000\000\000\000\000\239\000\000\005w\004\207\000l\000\000\000h\000\000\000i\000\000\000\000\000\000\002;\005A\000l\005\128\004\179\005\192\004\198\0058\005W\004\208\000\000\000\000\005_\000\000\004\209\000\000\000\000\000\000\004\210\000\129\005w\004\207\000\174\002X\004\211\000\000\002_\004M\002A\005M\000\000\000\000\000\000\000\000\000\145\000\000\006\246\000\000\000\000\004\208\000l\000\000\005:\006\244\004\209\001\203\000\000\000\000\004\210\000\000\000\000\000\129\001\213\004\195\004\211\000\231\004{\005?\000\000\000i\000\232\000\240\005O\000h\004\196\005N\001\206\004\181\000\000\000\000\000l\000\240\000\000\004\182\000\241\002;\000\000\000\000\005@\004\179\000\000\004\198\002]\000\000\000\130\000\000\000\000\002Z\0056\000\000\002\254\000\000\002\153\002[\000\000\000\000\000\000\000\174\000\000\002\003\000\000\000\000\004M\005A\005M\005\128\000\242\005\129\000\000\006?\005W\000\129\000\000\005\197\005_\000\231\000\130\000\000\000\000\000\000\000\232\000\225\005w\004\207\002\005\000\000\003\001\000\233\000i\002e\002\169\004{\001S\000l\000\000\001\017\000\000\000\000\000\174\0058\005N\004\208\004\181\000\000\000\134\004\028\004\209\000\000\004\182\000\000\004\210\000\000\000\000\006\222\000\244\000\137\004\211\000h\001\025\000\000\000y\000\239\001\019\0056\000\000\000\000\000\143\001\214\000\000\000\246\000\000\000\000\000\000\000\000\005:\000\000\000\130\006\223\006\186\006\187\000\000\000\225\000\000\000\000\006O\004\195\000\000\000\233\005\197\005?\000\000\000\000\001\215\000\240\005O\001\207\004\196\000\000\001\208\000\000\006\222\000\000\000l\000\000\000\000\000h\001S\002;\000\000\001\203\005\186\004\179\000\240\004\198\0058\002f\001\213\000\000\000\000\000\000\000\000\000\239\000i\004\184\006\223\006\186\006\187\000\000\003\024\000\174\001\206\000\000\000\000\000\000\004M\005A\005M\005R\005\188\000\000\000\000\000\000\005W\000\000\000\240\000\000\005_\000\241\000\000\005:\003\004\000\000\000\000\000\000\005w\004\207\006\188\000\000\000\129\000\000\004\195\000\000\000\231\004{\005?\000\000\000\000\000\235\000\240\005O\000i\004\196\005N\004\208\004\181\002l\000\134\000\000\004\209\000\242\004\182\000\000\004\210\000\000\000\000\005\186\000\000\000\137\004\211\000\000\000\000\000\000\000y\002m\000\000\0056\000l\000\000\003\014\000\000\000\000\000\129\002o\006\188\000\240\000\222\002\248\000\241\002p\000\000\005A\000\000\005R\005\188\000\000\000\000\006Q\005W\002;\000\000\005\197\005_\004\179\000\130\004\198\006\222\000\000\000\248\000\225\005w\004\207\001\214\000\000\000\000\000\233\000\000\000\000\000\000\001\001\000\242\000\174\000\000\000\000\000\000\000l\004M\0058\005M\004\208\006\223\006\186\006\187\000\000\004\209\000\000\000\000\001\220\004\210\000\000\001\207\000\000\000\000\001\208\004\211\006\222\000\000\000\130\000\000\000\239\006\222\001S\000\225\000\000\000\000\004{\000\000\000\000\000\226\000\000\007\003\000\000\005:\000\000\005N\000\000\004\181\004\193\000\248\006\223\006\186\006\187\004\182\004\195\006\223\006\186\006\187\005?\000\000\001\003\000\000\000\240\005O\000\000\004\196\000\174\000\000\0056\000\000\002;\004M\000\000\000\239\004\179\000\000\004\198\000\000\000\000\005\186\000\000\000\000\000\000\000\000\000\000\007\221\000\000\000\000\007\018\007\213\006\188\000\000\000\174\005\197\000\000\000\000\005\012\004M\005U\005\127\004{\000\000\000\000\000\000\005A\000\000\005R\005\188\000\000\001\186\000\000\005W\000\000\000\240\000\000\005_\000\241\000\000\000\129\0058\000\000\000\000\000\231\005w\004\207\000\000\004{\000\237\000\000\006\188\000\000\000\000\000\000\000\000\006\188\005N\000\000\004\181\000\000\000\000\000\000\000\000\004\208\004\182\000\000\000\000\002v\004\209\000\242\000\000\000\000\004\210\000\000\000\000\005:\000\000\000\240\004\211\0056\000\241\002;\000\000\000\000\000\000\004\179\004\195\004\198\000\000\000\000\005?\000\000\000\000\000\000\000\240\005O\000\129\004\196\001\017\000\000\000\222\002\247\006\222\000\174\000\130\000\000\000\000\000\000\004M\000\225\005M\005\186\000\242\000\000\000\000\000\233\000\000\000\244\000\000\000\000\000\000\001\023\000\000\000\000\000\000\001\019\006\223\006\186\006\187\000\000\0058\000\000\000\246\000\000\007\029\000\000\005A\004{\005R\005\188\000\000\000\000\000\000\005W\000\000\000\000\005N\005_\004\181\000\239\000\000\000\000\000\000\000\000\004\182\005w\004\207\000\000\000\000\005O\000\000\000\130\000\000\000\000\000\000\005:\000\225\000\000\000\000\0056\000\000\002;\000\226\007*\004\208\004\179\004\195\004\198\007(\004\209\005?\000\000\000\000\004\210\000\240\005O\b\017\004\196\000\000\004\211\007\227\000\000\006\222\000\174\005\197\000\000\000\000\000\000\004M\005U\005\127\005@\006x\000\000\000\000\006\188\000\239\005W\000\000\000\000\000\000\005_\000\000\000\000\000\000\000\000\006\223\006\186\006\187\005w\0058\000\000\000\174\000\000\000\000\000\000\005A\004{\005\128\000\000\005\129\000\000\000\240\005W\000\000\000\241\005N\005_\004\181\000\000\000\000\000\000\000\000\000\000\004\182\005w\004\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005:\000\000\000\000\000\000\0056\000\000\000\000\000\000\000\000\004\208\000\000\004\195\000\242\000\000\004\209\005?\000\000\000\000\004\210\000\240\005O\000\129\004\196\000\000\004\211\000\222\000\224\002;\000\000\000\000\005\206\004\179\000\000\004\198\000\240\000\000\005\186\000\241\001\203\000\000\006\188\000\243\000\000\000\000\000\000\001\213\000\000\000\000\000\000\000\174\000\000\000\000\000\000\006\222\004M\0058\005\127\000\000\000\000\001\206\000\244\005A\000\000\005R\005\188\002a\000\000\000\000\005W\000\242\000\000\000\000\005_\007&\000\000\000\246\000\000\006\223\006\186\006\187\005w\004\207\000\000\004{\000\000\000\000\000\130\000\000\000\000\000\000\005:\000\225\005N\000\000\004\181\000\000\000\000\000\226\000\000\004\208\004\182\004\195\000\000\006\222\004\209\005?\000\000\000\000\004\210\000\240\005O\000\000\004\196\000\000\004\211\0056\000\000\002;\000\000\000\000\000\000\004\179\000\000\004\198\000\000\000\000\005@\006\223\006\186\006\187\000\000\000\239\000\129\000\000\000\000\005\131\000\222\002\240\000\000\000\174\000\000\000\000\000\000\006\222\004M\000\000\005M\000\000\000\000\000\000\000\000\005A\000\000\005\128\000\000\005\129\006\188\002;\005W\000\000\001\214\002<\005_\007D\000\000\002=\0058\006\223\006\186\006\187\005w\004\207\000\000\004{\000\129\000\000\000\000\000\000\000\222\002,\000\000\000\000\005N\000\129\004\181\004_\000\000\000\231\001\207\004\208\004\182\001\208\000\235\000\000\004\209\000\000\000\000\000\130\004\210\001S\000\000\005:\000\225\000\000\004\211\0056\006\188\002;\000\226\000\000\000\000\004\179\004\195\004\198\000\240\000\000\005?\000\241\000\000\000\000\000\240\005O\002\174\004\196\000\000\005L\002>\000\000\000\000\000\174\000\000\000\000\002?\000\000\004M\000\000\005M\005\208\000\000\000\130\000\000\000\000\000\239\000\000\000\225\000\000\006\188\000\000\000\130\000\242\000\226\000\000\000\000\000\225\000\000\001\015\0058\000\000\000\000\000\233\000\000\006\222\005A\004{\005\128\000\000\005\210\000\000\000\000\005W\000\000\000\000\005N\005_\004\181\000\000\000\000\000\000\000\000\007B\004\182\005w\004\207\000\000\000\239\006\223\006\186\006\187\000\000\000\000\000\000\005:\000\000\000\239\000\000\0056\002\176\000\000\000\000\000\000\004\208\000\000\004\195\000\000\000\000\004\209\005?\000\000\000\000\004\210\000\240\005O\000\129\004\196\000\000\004\211\000\231\000\000\002;\003\015\000\000\000\232\004\179\000\000\004\198\000\240\002\178\005P\000\241\007@\000\000\000\000\000\000\000\000\000\000\000\000\005V\000\000\000\000\000\000\000\174\000\000\002\171\000\000\002\180\004M\0058\005M\000\000\000\000\000\240\000\000\005A\002\172\005R\005S\000\000\000\000\000\000\005W\000\242\000\000\000\000\005_\006\188\000\000\000\000\000\240\000\000\007Q\000\241\005w\004\207\000\000\004{\000\000\000\240\000\130\000\000\000\241\000\000\005:\000\225\005N\000\000\004\181\000\000\000\000\000\233\002\181\004\208\004\182\004\195\000\000\006\222\004\209\005?\000\000\000\000\004\210\000\240\005O\000\242\004\196\001J\004\211\0056\000\000\002;\000\000\000\000\000\242\004\179\000\000\004\198\000\000\000\000\005P\006\223\006\186\006\187\000\000\000\239\000\129\000\000\000\000\000\000\000\222\0025\000\000\000\174\000\000\002\183\000\000\000\000\004M\000\000\005M\000\000\000\000\001\017\000\000\005A\000\000\005R\005S\000\000\002\184\002;\005W\000\000\000\000\002<\005_\000\000\000\000\002=\0058\006\222\000\244\000\000\005w\004\207\001\025\004{\000\129\000\000\001\019\000\000\000\222\0028\000\000\000\000\005N\000\246\004\181\000\000\000\000\000\000\000\000\004\208\004\182\006\223\006\186\006\187\004\209\000\000\007O\000\130\004\210\000\000\000\000\005:\000\225\000\000\004\211\0056\006\188\002;\000\226\000\000\000\000\004\179\004\195\004\198\000\240\000\000\005?\000\241\000\000\000\000\000\240\005O\002\174\004\196\000\000\000\000\002>\000\000\000\000\000\174\000\000\000\000\002?\000\000\004M\000\000\005M\005P\000\000\000\130\000\000\000\000\000\239\000\000\000\225\000\000\000\000\000\000\000\000\000\242\000\226\000\000\000\000\000\000\000\000\000\000\0058\000\000\000\000\002\218\000\000\000\000\005A\004{\005R\005S\000\000\000\000\000\000\005W\006\188\000\000\005N\005_\004\181\000\000\000\000\000\000\000\000\000\000\004\182\005w\004\207\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\000\005:\000\000\000\000\000\000\0056\002\176\000\248\000\174\000\000\004\208\000\000\004\195\004M\000\000\004\209\005?\000\000\001\005\004\210\000\240\005O\000\129\004\196\000\000\004\211\000\231\000\000\002;\005\162\000\000\000\232\004\179\000\000\004\198\000\240\002\178\005\155\000\241\007\139\000\000\000\000\004{\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\174\001\186\002\171\000\000\002\216\004M\0058\005M\000\000\000\000\000\240\000\000\005A\002\172\005R\005\157\000\000\000\000\000\000\005W\000\242\000\000\000\000\005_\000\000\000\000\000\000\000\240\000\000\000\000\000\241\005w\004\207\000\000\004{\000\000\000\000\000\130\000\000\000\000\002\219\005:\000\225\005N\000\000\004\181\000\000\000\000\000\233\002\181\004\208\004\182\004\195\007\144\000\000\004\209\005?\000\000\000\000\004\210\000\240\005O\000\242\004\196\000\000\004\211\0056\000\000\002;\005\154\000\000\000\000\004\179\000\000\004\198\000\000\000\000\005\155\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\174\000\000\002\183\000\000\000\000\004M\000\000\005M\000\000\000\000\000\000\000\000\005A\000\000\005R\005\157\000\000\002\184\000\000\005W\000\000\000\000\000\000\005_\000\000\000\000\000\129\0058\000\000\000\000\000\231\005w\004\207\000\000\004{\000\237\000\000\000\000\000\000\000\000\005O\000\000\000\000\005N\000\129\004\181\000\000\000\000\000\231\000\000\004\208\004\182\000\000\000\232\000\000\004\209\000\000\000\000\000\000\004\210\000\000\000\000\005:\000\000\000\000\004\211\0056\000\000\002;\000\000\000\000\000\000\004\179\004\195\004\198\000\240\000\000\005?\000\241\000\000\000\000\000\240\005O\006z\004\196\000\000\000\000\000\000\005W\005\174\000\174\000\130\005_\000\000\000\000\004M\000\225\005M\005\175\000\000\005w\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\130\000\242\000\174\000\000\000\000\000\225\000\000\000\000\0058\000\000\000\000\000\233\000\000\000\000\005A\004{\005R\005\177\000\000\000\000\000\000\005W\000\000\000\000\005N\005_\004\181\000\239\000\000\000\000\000\000\000\000\004\182\005w\004\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005:\000\000\000\239\000\000\0056\000\000\000\248\000\000\000\000\004\208\000\000\004\195\000\000\000\000\004\209\005?\000\000\001\007\004\210\000\240\005O\000\000\004\196\000\000\004\211\000\000\000\000\002;\005\172\005\185\001\203\004\179\000\000\004\198\000\000\000\000\005\155\001\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\174\000\000\001\206\000\000\000\000\004M\0058\005M\000\000\000\000\000\000\000\000\005A\000\129\005R\005\157\000\000\002X\000\240\005W\002_\000\241\000\000\005_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005w\004\207\000\000\004{\000\000\000\240\000\000\000\000\000\241\000\000\005:\000\000\005N\000\000\004\181\000\000\000\000\000\000\000\000\004\208\004\182\004\195\000\242\000\000\004\209\005?\000\000\000\000\004\210\000\240\005O\000\000\004\196\000\000\004\211\0056\000\000\002;\000\000\000\000\000\242\004\179\000\000\004\198\000\000\000\000\005\186\000\130\000\000\000\000\002Z\000\243\000\000\002\254\007\217\000\000\002[\000\000\000\129\000\174\005\190\000\000\000\222\002L\004M\000\000\005M\000\000\000\000\000\000\000\244\005A\001\214\005R\005\188\002c\000\000\000\000\005W\000\000\000\000\000\000\005_\000\000\000\000\000\246\0058\000\000\000\248\003\001\005w\004\207\002e\004{\000\000\000\000\000\000\004i\000\000\001\t\001\207\000\000\005N\001\208\004\181\000\000\000\000\000\000\000\000\004\208\004\182\001S\000\000\000\000\004\209\000\000\000\000\000\000\004\210\000\000\000\000\005:\000\000\000\130\004\211\0056\000\000\002;\000\225\000\000\000\000\004\179\004\195\004\198\000\226\000\000\005?\000\000\000\000\000\000\000\240\005O\000\129\004\196\007\229\000\000\000\231\000\000\000\000\000\174\000\000\000\237\000\000\000\000\004M\000\000\005M\005\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\000\000\240\0058\000\000\002f\000\000\000\000\000\000\005A\004{\005R\005\188\000\000\000\000\000\000\005W\000\000\003\002\005N\005_\004\181\000\000\000\000\000\000\000\000\000\000\004\182\005w\004\207\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\005:\000\225\003\004\000\000\0056\000\000\002;\000\233\000\000\004\208\004\179\004\195\004\198\000\000\004\209\005?\000\000\000\000\004\210\000\240\005O\000\129\004\196\007\232\004\211\000\231\000\000\002l\000\174\000\000\000\237\000\000\000\000\004M\000\000\005M\007\218\000\000\000\000\000\000\000\240\000\239\000\000\000\241\000\000\002m\000\000\000\000\000\000\000\000\003\014\000\000\000\000\000\000\002o\0058\000\000\000\000\000\000\000\000\002p\005A\004{\005R\007\220\000\000\000\000\000\000\005W\000\000\000\000\005N\005_\004\181\000\000\000\242\000\000\000\000\000\000\004\182\005w\004\207\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\005:\000\225\000\000\000\000\0056\000\000\002;\000\233\000\000\004\208\004\179\004\195\004\198\000\000\004\209\005?\000\000\000\000\004\210\000\240\005O\000\129\004\196\000\000\004\211\000\231\000\000\000\000\000\174\000\000\000\232\000\000\000\000\004M\000\240\006f\007\218\000\241\000\000\000\000\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0058\000\000\000\000\000\000\000\000\000\000\005A\004{\005R\007\220\000\000\000\000\000\000\005W\000\242\000\000\005N\005_\004\181\000\000\000\000\000\000\000\000\000\000\004\182\005w\004\207\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\005:\000\225\000\000\000\000\0056\000\000\002;\000\233\000\243\004\208\004\179\004\195\004\198\000\000\004\209\005?\000\000\000\000\004\210\000\240\005O\000\000\004\196\000\000\004\211\000\000\000\000\000\244\000\174\000\000\000\000\000\000\004\200\004M\000\240\006f\007\218\000\241\000\000\000\000\000\000\000\239\000\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0058\000\000\000\000\000\000\000\000\000\000\005A\004{\005R\007\220\000\000\000\000\000\000\005W\000\242\000\000\005N\005_\004\181\000\000\000\000\000\000\000\000\000\000\004\182\005w\004\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005:\006g\000\000\000\000\0056\000\000\002;\000\000\000\243\004\208\004\179\004\195\004\198\000\000\004\209\005?\000\000\000\000\004\210\000\240\005O\000\000\004\196\000\000\004\211\000\000\000\000\000\244\000\174\000\000\000\000\000\000\004\202\004M\000\240\006f\005@\000\241\000\000\000\000\000\000\000\000\000\246\000\000\000\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\0058\000\000\000\000\000\222\002R\000\129\005A\004{\006j\004\179\000\000\004\198\000\000\005W\000\242\000\000\005N\005_\004\181\000\000\000\000\000\000\000\000\000\000\004\182\005w\004\207\000\174\000\000\000\000\000\000\000\000\005\225\000\000\000\000\005:\006i\000\000\000\000\0056\000\000\000\000\000\000\000\000\004\208\000\000\004\195\000\000\000\000\004\209\005?\000\000\000\000\004\210\000\240\005O\006\002\004\196\000\000\004\211\001\203\006\003\000\248\000\000\000\130\000\000\000\000\001\213\000\000\000\225\006\t\005@\004\181\001\011\000\000\000\226\000\000\000\000\004\182\000\000\000\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\174\000\000\0058\000\000\000\000\006\n\000\000\000\000\005A\006\012\006j\000\000\000\000\000\000\000\129\005W\000\000\000\000\000\231\005_\000\000\000\239\000\000\000\235\000\000\000\000\000\000\005w\004\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\174\005:\006l\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\004\195\000\000\000\000\004\209\005?\000\000\000\000\004\210\000\240\005O\000\129\004\196\000\000\004\211\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\000\000\000\001\203\000\000\005@\000\000\000\000\000\000\000\000\001\213\000\130\000\174\000\129\000\000\000\000\000\225\002X\001\015\000\000\002_\000\000\000\233\000\000\001\206\000\000\001\214\000\000\000\000\000\000\005A\000\000\006j\000\000\004\195\000\174\000\240\005W\000\000\000\241\000\000\005_\000\240\006\r\000\000\004\196\000\000\000\000\000\000\005w\004\207\005f\000\000\000\000\001\207\000\130\000\239\001\208\000\000\005@\000\225\000\000\001\015\000\000\000\000\001S\000\233\000\000\004\208\000\000\000\000\000\242\000\000\004\209\000\000\000\000\000\000\004\210\000\130\000\000\000\174\002Z\003\015\004\211\001H\000\000\000\000\002[\000\000\000\129\000\000\006\014\000\000\002X\000\000\006\022\002_\000\000\000\000\000\000\000\239\000\000\000\000\006(\004\207\000\000\000\000\000\000\000\000\000\000\000\000\000\174\000\000\000\000\000\000\000\000\000\000\000\000\002d\000\000\000\000\000\000\004\208\002e\000\000\001\214\001F\004\209\001H\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\004\211\000\000\000\240\000\000\000\000\000\241\000\129\000\000\000\000\000\000\000\231\000\000\000\000\005n\001\203\000\232\001\207\000\130\000\000\001\208\002Z\001\213\000\000\000\000\000\000\000\000\002[\001S\000\000\000\129\001J\000\000\000\000\002X\000\000\001\206\002_\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\000\000\000\174\000\000\000\000\002;\001P\000\000\002d\004\179\000\000\004\198\000\000\002e\001S\000\000\000\000\001\017\000\000\000\000\000\240\000\000\000\130\002f\000\000\001J\000\000\000\225\000\000\000\174\000\000\000\000\000\242\000\233\005/\006L\000\244\000\000\000\000\000\000\001\025\000\000\000\000\000\000\001\019\000\130\002g\002\162\002Z\000\000\001P\000\246\000\000\000\000\002[\000\000\000\000\000\000\001S\000\000\000\000\001\017\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\002\174\002j\004\181\002k\000\000\000\000\000\000\000\000\004\182\000\000\000\244\001S\000\000\002l\001\025\002d\000\000\001\214\001\019\000\000\002e\000\000\000\000\0056\000\000\000\246\000\240\000\000\000\000\002f\001\203\002m\000\000\000\000\000\000\002;\002n\001\213\000\000\004\179\002o\004\198\005\238\000\000\000\000\001\207\002p\000\000\001\208\000\000\002\145\001\206\002g\002h\000\000\000\000\001S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005/\005\148\000\000\002;\000\000\000\000\000\000\004\179\000\000\004\198\0058\000\000\000\000\002j\000\000\002k\000\240\000\000\000\000\000\241\000\000\000\000\000\000\001S\000\000\002l\000\000\000\000\000\000\000\000\000\000\000\000\005/\005\138\000\000\000\000\002\174\000\000\004\181\000\240\000\000\000\000\002f\002m\004\182\005:\000\000\000\000\002n\000\000\000\000\000\242\002o\000\000\000\000\000\000\004\195\000\000\002p\0056\005?\000\000\002\145\000\000\000\240\002g\004\186\004\196\002\174\000\000\004\181\000\000\000\000\000\000\000\000\000\000\004\182\000\000\000\000\000\000\000\000\005@\000\000\000\000\000\000\000\000\000\000\000\000\001\214\000\000\002j\0056\002k\000\000\000\000\000\000\000\000\000\000\000\000\002\246\001S\002;\002l\000\000\000\000\004\179\005A\004\198\000\000\000\000\0058\000\129\000\000\006\029\000\000\002X\001\207\000\000\002_\001\208\002m\000\000\000\000\000\000\000\000\002n\004\207\001S\000\000\002o\005/\0050\000\000\000\174\000\000\002p\000\000\000\000\000\000\002\145\000\000\000\000\0058\000\000\004\208\005:\000\000\000\129\000\000\004\209\000\000\000\222\002U\004\210\000\129\000\000\004\195\000\000\000\231\004\211\005?\000\000\000\000\000\232\000\240\000\000\002\174\004\196\004\181\000\000\000\000\000\000\000\000\000\000\004\182\000\000\000\130\005:\000\000\002Z\000\000\005@\000\000\000\000\000\000\002[\000\000\000\000\004\195\0056\000\000\000\000\005?\000\000\000\000\000\000\000\240\000\000\000\000\004\196\000\129\000\000\000\000\000\000\002X\000\000\005A\002_\000\000\000\000\000\000\000\000\000\130\005@\000\000\000\000\002d\000\225\000\000\000\130\000\000\002e\000\174\000\226\000\225\000\000\004\207\000\000\000\000\000\000\000\233\000\000\000\000\002;\000\000\000\000\000\000\004\179\005A\004\198\0058\000\000\000\000\000\000\004\208\000\000\000\000\000\000\000\000\004\209\000\000\000\000\000\129\004\210\000\000\000\000\000\231\000\239\004\207\004\211\000\000\000\235\005/\005>\000\239\000\130\000\000\000\000\002Z\000\000\000\000\000\000\000\000\000\000\002[\005:\004\208\000\000\000\000\000\000\000\000\004\209\000\000\000\000\000\000\004\210\004\195\000\000\000\129\000\000\005?\004\211\000\222\004\139\000\240\000\000\000\000\004\196\002\174\000\000\004\181\000\000\000\000\000\000\000\240\002d\004\182\002f\000\000\000\000\002e\005@\000\000\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\0056\000\225\000\000\001\015\000\000\000\000\000\000\000\233\000\000\002g\005<\000\000\000\000\000\000\000\000\005A\000\000\000\000\000\000\000\240\003\"\000\000\000\241\000\000\000\000\000\000\000\240\002;\000\000\000\241\000\000\004\179\000\130\004\198\002j\004\207\002k\000\225\000\000\000\000\000\000\000\239\000\000\000\226\001S\000\129\002l\000\000\000\000\002X\000\000\0058\002_\004\208\000\242\000\000\005/\005\150\004\209\000\000\000\000\000\242\004\210\000\000\002m\000\000\000\000\000\174\004\211\002n\000\000\000\000\000\240\002o\000\000\002f\000\000\000\239\000\000\002p\000\000\000\000\000\000\002\145\000\000\000\000\005:\000\000\000\000\000\000\000\000\000\000\002\174\000\000\004\181\000\000\000\000\004\195\002g\005Y\004\182\005?\000\000\000\000\000\000\000\240\000\000\000\000\004\196\000\248\000\130\000\000\000\000\002Z\000\000\0056\000\000\000\129\000\000\002[\001\r\000\231\005@\002j\000\240\002k\000\232\000\241\000\000\000\000\000\000\000\000\000\000\001S\000\129\002l\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\000\000\000\005A\000\000\000\000\002d\000\000\001\024\002m\000\000\002e\000\174\000\000\002n\000\242\000\240\000\000\002o\000\241\000\000\000\000\0058\004\207\002p\000\000\000\000\000\000\002\145\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\130\000\000\000\235\004\208\000\000\000\225\001\017\000\000\004\209\000\000\000\000\000\233\004\210\000\242\000\000\000\174\000\000\000\130\004\211\005:\000\000\000\000\000\225\000\000\001\015\000\244\000\000\000\000\000\233\001\025\004\195\000\000\000\000\001\019\005?\000\000\000\000\000\000\000\240\000\000\000\246\004\196\000\000\000\000\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005@\000\240\000\000\000\130\002f\000\000\000\000\000\239\000\225\000\129\001\015\000\000\000\000\002X\000\233\000\000\002_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005A\000\000\002g\006\016\000\000\000\000\000\174\000\000\000\000\000\000\000\129\000\000\000\000\000\000\002X\000\000\000\000\002_\000\000\000\000\004\207\000\000\000\000\000\239\000\000\000\000\000\000\002j\000\000\002k\000\000\000\000\000\174\000\000\000\000\000\000\000\000\001S\004\208\002l\000\129\000\000\000\000\004\209\000\222\004\170\000\000\004\210\000\240\000\130\000\000\000\241\002Z\004\211\000\000\000\000\000\000\002m\002[\000\000\000\000\000\000\002n\000\000\000\000\000\240\002o\000\000\000\241\000\000\000\000\000\000\002p\000\000\000\000\000\130\002\145\000\000\002Z\000\000\000\000\000\000\000\000\000\242\002[\000\000\000\000\000\000\000\000\002\156\000\000\000\000\000\000\002\011\002e\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\130\000\240\000\000\000\000\000\241\000\225\000\000\000\000\000\000\000\000\002\147\000\226\000\129\002\r\000\000\002e\002X\000\000\000\000\002_\000\000\001S\000\000\000\000\001\017\000\000\000\248\000\000\000\000\002\020\000\000\000\000\000\000\000\000\000\174\000\129\000\242\001\027\000\000\000\222\004\173\000\000\000\000\000\244\000\000\000\239\000\000\001\025\000\000\000\000\000\000\001\019\000\000\000\000\002\022\000\000\000\000\000\000\000\246\000\000\000\000\000\000\001S\000\000\000\000\001\017\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\000\000\000\002f\000\000\000\130\000\000\000\000\002Z\000\000\000\000\000\000\000\244\000\000\002[\000\000\001\025\000\000\000\000\000\000\001\019\000\000\000\000\000\000\000\000\000\000\000\240\000\246\000\130\002f\000\000\000\000\000\129\000\225\000\000\000\000\000\231\000\000\000\000\000\226\000\000\000\235\000\000\000\000\000\000\002\160\000\000\000\000\000\129\000\000\002e\002j\000\231\002k\000\174\000\000\000\240\000\235\000\000\000\241\000\000\001S\000\000\002l\000\000\000\000\000\000\000\000\000\000\000\000\000\174\000\000\000\000\000\239\000\000\000\000\000\000\002j\000\000\002k\000\000\002m\000\000\000\000\000\000\000\000\002n\001S\000\000\002l\002o\000\242\000\000\000\000\000\000\000\000\002p\000\130\000\000\000\000\002\145\000\000\000\225\000\000\001\015\000\129\000\000\002m\000\233\000\231\000\000\000\000\002n\000\130\000\235\000\000\002o\000\000\000\225\000\000\001\015\000\000\002p\000\000\000\233\000\129\002\145\000\174\000\000\000\231\000\000\000\000\000\000\000\240\000\235\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\129\000\000\000\000\000\174\004\179\000\000\004\198\000\000\000\000\000\000\000\000\000\000\000\240\000\000\000\239\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\174\000\129\000\000\000\000\000\130\000\231\000\000\000\000\000\000\000\225\000\235\001\015\000\000\000\000\000\000\000\233\000\000\000\000\002j\000\000\002k\000\000\000\000\000\174\000\130\000\242\000\000\000\000\001S\000\225\002l\001\015\000\000\000\000\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\130\000\000\004\181\000\000\000\000\002m\000\239\000\000\004\182\000\000\002n\000\000\000\000\000\000\002o\000\000\000\240\000\000\000\000\000\241\002p\000\000\000\000\000\130\002\145\000\000\000\239\000\000\000\225\000\000\001\015\000\000\000\240\000\000\000\233\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\011\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\002\011\000\231\000\000\000\000\000\000\000\000\000\232\000\242\000\239\003\021\004\203\000\000\000\000\001H\000\000\000\000\000\000\001S\000\000\000\000\001\017\000\000\000\000\002;\000\000\003\027\000\000\002<\000\000\000\240\000\000\002=\000\241\001S\000\000\000\000\001\017\000\000\000\000\000\244\000\000\000\000\000\000\001\025\000\000\000\000\000\000\001\019\000\000\000\240\000\000\000\000\000\241\000\000\000\246\000\244\000\000\002\011\000\000\001\025\004\195\000\000\000\130\001\019\000\242\000\000\000\000\000\225\000\240\000\000\000\246\004\196\000\000\000\233\000\000\000\000\000\000\002\011\000\000\000\000\000\000\000\000\003\031\000\000\000\242\004\205\000\000\000\000\002\174\000\000\001S\000\240\002>\001\017\000\241\002;\000\000\000\000\002?\002<\002;\000\000\004\137\002=\002<\000\000\000\000\000\239\002=\000\000\001S\000\000\000\244\001\017\000\000\000\000\001\025\000\000\000\000\004\158\001\019\001P\000\000\000\000\000\000\002\175\000\242\000\246\000\000\001S\004\207\000\000\000\244\000\000\000\000\000\000\001\025\000\000\000\000\000\000\001\019\000\129\000\000\000\000\004\160\000\231\000\000\000\246\004\208\000\000\000\235\000\000\001S\004\209\000\000\001\017\000\000\004\210\000\000\000\000\002\174\000\000\002\176\004\211\002>\002\174\000\000\000\000\000\000\002>\002?\000\000\002;\000\000\000\244\002?\002<\000\000\001\025\000\000\002=\000\000\001\019\000\000\000\000\000\000\000\000\000\000\000\000\000\246\000\240\000\000\002\178\000\241\000\000\000\000\000\000\002\175\000\000\000\000\000\000\000\000\002\175\000\000\000\000\000\000\000\130\000\000\002\171\002\241\002\216\000\225\000\000\001\015\002;\000\000\000\240\000\233\002<\002\172\000\000\000\000\002=\000\000\000\000\000\242\000\000\000\000\000\000\000\000\001\020\000\000\000\000\000\000\002\176\000\000\000\000\002\174\000\000\002\176\002\227\002>\000\000\000\000\000\000\000\000\002\219\002?\000\000\000\000\000\000\000\239\000\000\000\000\000\000\002\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\178\000\000\000\000\000\000\000\000\002\178\000\000\000\000\000\000\000\248\002\175\000\000\000\000\000\000\000\000\002\174\002\171\002\238\002\216\002>\001\029\002\171\002\235\002\216\000\240\002?\000\000\002\172\000\000\000\240\000\000\000\000\002\172\000\000\002\183\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\176\002\227\002\184\000\000\000\000\002\175\002\227\002\219\000\000\000\000\000\000\002;\002\219\000\000\000\000\002<\002\181\000\000\000\000\002=\000\000\002\181\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\000\002\178\000\000\000\000\000\000\000\000\000\000\002;\000\000\000\000\000\000\002<\000\000\002\176\000\000\002=\000\000\002\171\002\233\002\216\000\000\000\000\001\024\000\129\000\000\000\240\000\000\000\231\002\172\000\242\002\183\000\000\000\235\000\000\000\000\002\183\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\178\000\000\002\184\000\000\002\174\000\000\002\227\002\184\002>\000\000\000\000\000\000\002\219\000\000\002?\001\017\002\171\002\214\002\216\000\129\000\000\002\181\000\000\000\231\000\240\000\000\000\000\002\172\000\235\002\174\000\000\000\129\000\000\002>\000\244\000\231\000\000\000\000\001\025\002?\000\232\002\175\001\019\000\000\000\000\000\130\000\000\000\000\002\227\000\246\000\225\000\000\001\015\000\000\002\219\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\002\181\002\183\000\000\002\175\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\000\002\176\002\184\000\000\000\235\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\239\001\015\000\000\000\129\000\000\000\233\000\130\000\231\000\000\000\000\000\000\000\225\000\235\002\176\000\000\000\000\002\183\000\233\002\178\000\000\000\000\000\000\000\000\000\129\000\000\000\000\002\017\000\231\000\000\000\000\000\000\002\184\000\235\000\000\002\171\004\245\002\216\000\000\000\000\000\239\000\000\000\000\000\240\002\178\000\129\002\172\000\000\000\130\000\231\000\000\000\000\000\239\000\225\000\235\001\015\000\000\000\000\000\000\000\233\002\171\007\223\002\216\000\000\000\000\000\000\000\000\002\227\000\240\000\130\000\000\002\172\002t\002\219\000\225\000\000\001\015\000\000\000\000\000\000\000\233\000\000\002\181\000\000\000\240\000\000\000\000\000\241\000\000\000\130\000\000\000\000\002\227\000\239\000\225\000\000\001\015\000\000\002\219\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\002\181\000\000\000\000\000\130\000\000\001J\000\000\000\239\000\225\000\000\001\015\004R\000\242\000\000\000\233\000\000\000\240\000\000\002\183\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\240\000\000\000\129\000\241\000\000\002\184\000\231\000\000\000\000\000\000\000\000\000\235\000\000\001\017\000\000\002\183\002\231\000\000\000\000\000\000\000\239\000\000\000\000\000\242\000\129\000\000\000\000\000\000\000\231\000\000\002\184\000\000\000\244\000\235\000\000\000\242\001\025\000\000\000\000\000\000\001\019\000\240\000\000\000\000\000\241\000\000\000\129\000\246\000\000\000\000\000\231\000\000\001\017\000\000\000\000\000\235\000\000\004c\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\000\000\000\130\000\000\001\024\000\000\000\244\000\225\000\000\001\015\001\025\000\242\004o\000\233\001\019\000\000\000\000\000\240\001E\000\000\000\241\000\246\000\000\000\000\000\130\002\231\004\215\000\000\000\000\000\225\000\000\001\015\000\242\004w\000\000\000\233\000\000\000\000\000\240\000\000\001\017\000\241\000\000\000\000\000\000\002\231\000\130\000\239\000\000\000\000\000\000\000\225\000\242\001\015\000\000\000\000\000\000\000\233\000\000\000\244\000\000\001\017\000\000\001\025\000\000\000\000\002\231\001\019\000\000\000\239\005\016\000\000\000\000\000\242\000\246\000\000\000\000\000\000\000\129\000\000\000\244\001\017\000\231\000\000\001\025\000\000\000\000\000\235\001\019\000\000\000\000\000\239\000\000\000\000\000\129\000\246\000\000\000\000\000\231\000\000\000\244\000\000\001\017\000\235\001\025\000\000\000\000\000\000\001\019\000\000\000\000\000\000\000\000\000\000\000\000\000\246\000\000\000\000\000\000\000\000\000\000\000\244\000\000\000\000\000\000\001\025\000\000\000\000\000\000\001\019\000\240\000\129\000\000\000\241\000\000\000\231\000\246\000\000\000\000\000\000\000\235\000\000\000\000\000\130\000\000\000\000\000\000\004~\000\225\000\000\001\015\000\000\000\240\000\000\000\233\000\241\000\000\000\000\001\024\000\130\000\000\000\000\000\000\000\000\000\225\000\242\001\015\005\018\000\000\000\000\000\233\000\000\000\129\000\000\000\240\000\000\000\231\000\241\000\000\000\000\002\231\000\235\000\000\005\020\000\000\000\000\000\000\000\242\000\239\000\000\000\000\000\000\000\000\000\129\001\017\000\000\000\130\000\222\004\176\000\000\000\000\000\225\001\024\001\015\000\239\000\000\000\000\000\233\000\000\000\242\000\000\000\000\000\000\000\244\000\000\000\000\001\017\001\025\000\000\000\000\000\000\001\019\000\000\000\000\000\000\000\000\000\000\000\000\000\246\000\000\000\000\000\000\000\000\000\000\000\000\000\244\000\000\000\130\001\017\001\025\000\000\000\239\000\225\001\019\001\015\000\000\000\000\000\000\000\233\000\000\000\246\000\000\000\000\000\000\000\000\000\000\000\000\000\244\000\130\000\000\000\000\001\025\000\000\000\225\000\000\001\019\000\129\000\000\000\000\000\226\000\231\000\240\000\246\000\000\000\241\000\235\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\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\239\000\000\000\000\000\242\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\001\024\000\235\000\000\000\000\005]\000\000\000\000\000\242\000\000\000\240\000\000\000\000\000\241\000\000\002;\000\000\000\130\000\000\002<\000\000\001\017\000\225\002=\001\015\000\000\000\000\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\002\231\000\000\000\244\000\000\000\000\000\000\001\025\000\242\005j\000\000\001\019\000\000\000\000\000\240\000\000\000\000\000\241\000\246\000\244\000\000\000\130\000\000\001\025\000\000\000\239\000\225\001\019\001\015\000\000\000\000\000\000\000\233\000\000\000\246\000\240\000\000\001\017\000\241\000\000\000\000\000\000\002\231\002\174\000\000\000\000\000\000\002>\000\000\000\242\000\129\000\000\000\000\002?\000\231\000\000\000\244\000\000\000\000\000\235\001\025\000\000\000\000\000\129\001\019\000\000\000\239\000\231\000\000\000\000\000\242\000\246\000\235\000\000\000\000\000\000\000\000\000\000\001\017\000\000\002\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\000\000\000\244\000\000\000\000\000\000\001\025\000\000\005s\000\000\001\019\000\000\000\000\000\240\000\000\000\129\000\241\000\246\000\000\000\231\000\130\000\000\002\176\000\000\000\235\000\225\000\000\001\015\000\000\000\000\000\000\000\233\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\000\001\015\002\231\000\000\000\000\000\233\000\000\000\000\000\000\000\242\005{\000\000\000\000\002\178\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\239\000\231\000\000\002\171\000\000\002\216\000\235\000\000\000\000\000\000\000\000\000\240\001\017\000\239\002\172\000\130\000\000\002\231\000\000\000\000\000\225\000\000\001\015\000\000\000\242\000\000\000\233\000\000\000\000\000\000\000\000\000\244\000\000\000\000\000\000\001\025\000\000\000\000\000\000\001\019\000\129\002\219\000\000\000\000\000\231\000\000\000\246\000\000\000\000\000\235\002\181\000\000\000\000\001\017\000\000\000\000\000\000\000\129\000\000\000\000\000\239\000\231\000\130\000\000\000\000\000\000\000\235\000\225\000\000\001\015\000\000\000\000\000\244\000\233\000\000\000\000\001\025\000\000\005\230\000\000\001\019\000\000\000\000\000\240\000\000\000\000\000\241\000\246\000\000\000\000\000\000\005\242\000\000\002\183\000\000\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\130\000\000\000\239\002\184\000\000\000\225\002\231\001\015\000\000\000\000\000\000\000\233\000\000\000\242\000\129\000\000\000\000\000\130\000\231\002\231\000\000\000\000\000\225\000\235\001\015\000\000\000\242\000\000\000\233\000\000\000\000\000\000\000\000\005\247\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\001\017\000\000\000\000\000\239\000\000\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\244\000\239\000\000\000\000\001\025\002\231\000\000\000\000\001\019\000\000\000\000\000\000\000\242\000\244\000\000\000\246\000\000\001\025\000\130\005\254\000\000\001\019\000\000\000\225\000\240\001\015\000\000\000\241\000\246\000\233\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\001\017\000\000\000\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\231\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\244\000\000\006\007\000\239\001\025\000\000\000\000\000\240\001\019\000\000\000\241\000\000\000\000\000\000\000\000\000\246\000\000\000\000\000\000\006\020\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\001\017\000\000\000\000\000\000\000\129\000\000\000\000\002\231\000\231\000\000\000\000\000\130\000\000\000\235\000\242\000\000\000\225\000\000\001\015\000\244\000\000\000\000\000\233\001\025\002\231\000\000\000\000\001\019\000\000\000\000\000\000\000\242\000\000\000\000\000\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\006!\000\235\000\129\000\239\000\000\000\240\000\231\001\017\000\241\000\244\000\000\000\235\007\187\001\025\000\000\000\000\000\130\001\019\000\000\000\000\000\000\000\225\b \001\015\000\246\000\000\000\244\000\233\000\000\000\000\001\025\000\000\000\000\002\231\001\019\000\000\000\000\000\000\000\000\000\000\000\242\000\246\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\239\000\225\000\000\001\015\000\000\000\000\000\130\000\233\001\017\000\000\000\000\000\225\000\129\001\015\000\000\000\000\000\231\000\233\000\000\000\000\006&\000\235\000\000\000\000\000\000\000\240\000\000\000\244\000\241\000\000\000\000\001\025\000\000\000\000\000\000\001\019\000\000\000\000\000\000\000\000\000\000\000\239\000\246\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\239\000\225\002\231\001\015\000\000\000\000\000\000\000\233\000\000\000\242\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\000\000\000\000\000\000\130\006-\000\000\000\000\000\129\000\225\000\240\001\015\000\231\000\241\000\000\000\233\001\017\000\235\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\244\000\000\000\000\002\231\001\025\000\000\000\000\000\000\001\019\000\000\000\242\000\000\000\000\002;\000\239\000\246\000\240\002<\000\000\000\241\000\130\002=\000\000\000\000\000\000\000\225\000\240\001\015\000\000\000\241\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\130\001\017\000\000\000\000\000\000\000\225\007\188\001\015\000\000\000\000\000\000\000\233\000\000\000\242\000\000\000\000\007\188\000\000\000\000\000\000\000\244\000\000\000\000\000\242\001\025\000\000\000\000\000\239\001\019\000\240\000\000\000\000\000\241\000\000\000\000\000\246\000\000\000\000\000\000\000\129\002\174\000\000\001\017\000\231\002>\000\239\000\000\000\000\000\235\000\000\002?\000\000\001\017\000\000\000\000\000\000\000\000\001L\000\000\000\240\000\000\000\244\000\241\000\000\000\242\001\025\000\000\000\000\000\000\001\019\000\000\000\244\000\000\000\000\000\000\001\025\000\246\002\225\000\000\001\019\000\000\000\000\000\000\000\000\000\000\000\000\000\246\002\026\000\000\000\000\000\000\000\000\000\000\001\017\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\240\001\015\000\244\000\241\002\176\000\233\001\025\000\000\000\000\000\000\001\019\000\000\000\000\001\017\000\000\000\000\000\000\000\246\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\000\002\028\000\000\000\000\000\000\000\244\000\000\002\178\000\242\001\025\000\000\000\000\000\239\001\019\000\000\000\000\000\000\000\000\000\000\002\149\000\246\000\000\000\000\002\171\000\000\002\216\000\242\000\000\000\000\000\129\000\000\000\240\000\000\000\231\002\172\000\000\000\000\001\017\000\235\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000\244\000\000\000\000\000\129\001\025\002\219\000\000\000\231\001\019\000\000\000\000\000\000\000\235\000\000\002\181\000\246\000\000\000\000\000\244\000\000\000\000\000\000\001\025\000\000\000\000\000\000\001\019\000\000\000\000\000\000\000\000\000\000\000\000\000\246\000\000\000\000\000\000\000\000\000\130\000\240\000\000\000\000\000\241\000\225\000\000\001\015\000\000\000\000\000\130\000\233\000\000\000\000\000\000\000\225\000\000\001\015\000\000\002\183\000\000\000\233\000\000\000\000\000\129\000\000\000\000\000\000\000\231\002\165\000\130\000\000\000\000\000\232\002\184\000\225\000\242\001\015\000\129\000\129\000\000\000\233\000\231\000\231\000\000\000\239\000\000\000\235\000\235\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\000\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\239\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\244\000\231\000\000\000\000\001\025\000\130\000\235\000\000\001\019\000\000\000\225\000\000\000\000\000\000\000\000\000\246\000\233\000\000\000\000\000\130\000\130\000\000\000\000\000\000\000\225\000\225\001\015\001\015\000\000\000\000\000\233\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\239\000\000\000\000\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\130\000\000\000\239\000\239\000\000\000\225\000\000\001\015\000\000\000\000\003\b\000\233\000\240\000\000\000\000\000\241\000\000\000\242\000\000\000\000\004A\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\000\004G\000\000\000\000\000\000\000\000\000\239\001\017\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\001\017\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\244\000\000\000\000\000\000\001\025\000\000\000\240\000\000\001\019\000\241\000\244\001\017\000\000\000\000\001\025\000\246\000\000\000\000\001\019\000\000\000\240\000\240\000\000\000\241\000\241\000\246\000\000\000\000\000\130\000\000\000\244\000\000\000\000\000\225\001\025\001\015\000\000\000\000\001\019\000\233\000\000\000\242\000\000\000\000\000\000\000\246\000\000\000\000\004\142\004\147\000\000\000\000\000\000\000\000\000\130\000\242\000\242\000\000\000\000\000\225\000\129\001\015\000\000\000\240\000\231\000\233\000\241\000\000\000\000\000\235\000\000\000\000\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\001\017\000\000\000\000\000\000\000\248\000\000\004\151\000\000\000\129\000\000\000\000\000\000\000\231\000\242\000\239\001\031\000\000\000\235\000\244\000\244\000\000\000\000\001\025\001\025\000\000\000\000\001\019\001\019\000\000\000\000\000\000\000\000\000\000\000\246\000\246\000\000\000\000\000\000\000\000\000\000\000\130\000\000\001\017\000\000\000\000\000\225\000\000\001\015\000\000\000\000\000\129\000\233\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\235\000\000\000\244\000\000\000\000\000\000\001\025\000\000\000\000\000\129\001\019\000\000\000\240\000\231\000\130\000\241\000\000\000\246\000\235\000\225\000\000\001\015\000\000\000\000\000\000\000\233\000\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\000\004\189\000\241\000\000\000\000\000\000\000\000\000\129\000\242\000\129\000\000\000\231\000\000\000\231\000\000\000\000\000\232\000\130\000\235\000\000\000\239\000\000\000\225\000\000\001\015\000\000\000\000\005\b\000\233\000\000\000\000\000\000\000\000\000\000\000\242\000\130\000\000\001\017\000\000\000\000\000\225\000\000\001\015\000\000\000\000\000\000\000\233\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\244\000\235\000\000\000\000\001\025\000\000\000\239\001\017\001\019\000\000\000\000\000\000\000\000\000\000\000\240\000\246\000\130\000\241\000\130\000\000\000\000\000\225\000\000\000\225\000\239\001\015\000\244\000\233\000\000\000\233\001\025\000\000\000\000\000\000\001\019\000\000\000\000\000\000\000\000\000\000\000\000\000\246\0053\000\000\000\000\000\000\000\000\000\240\000\000\000\242\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\239\000\225\000\239\001\015\000\000\000\000\000\129\000\233\000\000\000\000\000\231\000\000\000\000\000\000\005\217\000\235\000\000\001\017\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\000\000\129\000\241\000\000\000\000\000\231\000\000\000\244\000\000\000\000\000\235\001\025\000\239\000\000\000\000\001\019\000\000\000\240\000\000\000\000\000\241\001\017\000\246\000\000\000\000\000\000\000\000\006C\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\244\000\000\000\130\000\000\001\025\006W\000\000\000\225\001\019\001\015\000\000\000\000\000\242\000\233\000\240\000\246\000\240\000\241\000\000\000\241\000\000\000\000\000\000\001\017\000\000\000\000\000\130\000\000\000\000\000\000\000\129\000\225\000\000\001\015\000\231\000\000\000\000\000\233\000\000\000\235\000\000\001\017\000\244\000\000\006Y\000\000\001\025\000\239\000\000\000\242\001\019\000\242\000\000\000\000\000\000\000\240\000\000\000\246\000\241\000\000\000\244\000\129\000\000\000\000\001\025\000\231\000\000\000\000\001\019\000\129\000\232\000\239\000\000\000\231\000\000\000\246\000\000\000\000\000\235\000\000\001\017\000\000\000\000\006[\000\000\000\129\000\000\000\000\000\000\000\231\000\242\000\000\000\000\000\000\000\232\000\130\000\000\000\248\000\000\000\244\000\225\000\000\001\015\001\025\000\000\000\000\000\233\001\019\001!\000\000\000\000\000\000\000\000\000\000\000\246\000\000\000\000\000\000\000\000\001\017\000\000\000\000\000\000\000\129\000\000\000\000\000\130\000\231\000\000\000\000\000\240\000\225\000\232\000\241\000\130\000\000\000\000\000\233\000\244\000\225\000\239\000\000\001\025\000\000\000\000\000\233\001\019\000\000\000\000\000\000\000\130\000\000\000\000\000\246\000\240\000\225\000\000\000\241\006a\000\129\000\000\000\233\000\000\000\231\000\000\000\242\000\129\000\000\000\232\000\000\000\231\000\239\000\000\000\000\000\129\000\232\000\000\000\000\000\231\000\239\000\000\000\000\006r\000\232\000\000\000\000\000\000\000\000\000\130\000\242\000\000\000\000\000\000\000\225\001\017\000\239\000\000\000\000\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\244\000\231\000\000\000\000\001\025\001\017\000\232\000\000\001\019\000\000\000\240\000\130\000\000\000\241\000\000\000\246\000\225\000\000\000\130\000\000\000\239\000\000\000\233\000\225\000\244\000\000\000\130\000\000\001\025\000\233\000\000\000\225\001\019\000\000\000\000\000\000\000\000\000\233\006\128\000\246\000\000\000\240\000\000\000\000\000\241\000\242\000\129\000\000\000\000\000\240\000\231\000\000\000\241\000\000\000\000\000\232\000\239\000\000\000\000\000\000\000\000\000\000\000\130\000\239\000\000\000\240\000\000\000\225\000\241\000\000\000\000\000\239\000\000\000\233\001\017\000\000\000\242\000\000\000\000\000\000\000\000\000\000\004\217\000\000\000\242\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\244\000\232\000\129\000\000\001\025\000\000\000\231\000\242\001\019\000\000\000\240\000\232\000\000\000\241\000\239\000\246\000\000\000\000\000\130\000\000\001\017\000\000\000\000\000\225\000\000\000\000\000\000\000\000\000\000\000\233\000\000\000\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\244\000\000\000\000\001#\001\023\000\000\000\242\000\240\001\019\000\000\000\241\000\000\000\000\000\000\000\240\000\246\000\248\000\241\000\130\000\000\000\000\000\000\000\240\000\225\000\239\000\241\000\129\001%\000\130\000\233\000\231\000\000\000\000\000\225\000\000\000\232\000\000\000\000\000\000\000\233\000\000\000\129\000\242\000\000\000\000\000\231\000\000\000\000\000\000\000\242\000\232\000\000\000\000\000\000\000\248\000\129\000\000\000\242\000\240\000\231\000\000\000\241\000\129\000\239\000\232\001'\000\231\000\000\000\000\000\000\000\000\000\232\000\000\000\239\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\232\000\000\000\000\000\248\000\130\000\000\000\242\000\000\000\000\000\225\000\248\000\000\000\000\000\000\001)\000\233\000\000\000\000\000\248\000\130\000\240\001+\000\000\000\241\000\225\000\000\000\000\000\000\000\000\001-\000\233\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\130\000\000\000\000\000\000\000\233\000\225\000\000\000\000\000\000\000\239\000\000\000\233\000\000\000\000\000\248\000\242\000\130\000\000\000\000\000\240\000\000\000\225\000\241\000\000\000\239\001/\000\000\000\233\000\000\000\240\000\000\000\000\000\241\000\129\000\000\000\129\000\000\000\231\000\239\000\231\000\000\000\000\000\232\000\000\000\232\000\239\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\242\000\000\000\000\000\000\000\232\000\000\000\000\000\239\000\000\000\248\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\240\000\000\000\232\000\241\000\000\000\000\000\130\000\000\000\130\000\000\000\248\000\225\000\000\000\225\000\000\000\240\000\000\000\233\000\241\000\233\000\248\0013\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\240\000\000\0015\000\241\000\233\000\000\000\242\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\242\000\239\000\240\000\239\000\232\000\241\000\000\000\129\000\130\000\000\000\000\000\231\000\000\000\225\000\242\000\000\000\232\000\239\000\000\000\233\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\248\000\000\000\000\000\231\000\242\000\000\000\000\000\000\000\232\000\000\000\000\0017\000\000\000\129\000\000\000\248\000\000\000\231\000\000\000\000\000\239\000\000\000\232\000\000\000\000\000\000\0019\000\130\000\000\000\248\000\000\000\000\000\225\000\000\000\000\000\000\000\248\000\000\000\233\000\130\002r\000\000\000\000\000\000\000\225\000\000\000\000\002x\000\000\000\000\000\233\000\240\000\248\000\240\000\241\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\000\002z\000\130\000\000\000\000\000\240\000\000\000\225\000\241\000\000\000\239\000\000\000\000\000\233\000\000\000\000\000\130\000\000\000\000\000\129\000\000\000\225\000\239\000\231\000\242\000\000\000\242\000\233\000\232\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\242\000\240\000\232\000\000\000\241\000\000\000\129\000\239\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\232\000\129\000\000\000\000\000\000\000\231\000\239\000\000\000\000\000\000\000\232\000\000\000\000\000\000\000\000\000\000\000\000\000\248\000\000\000\248\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002|\000\130\002~\000\000\000\000\000\248\000\225\000\000\000\000\000\000\000\240\000\000\000\233\000\241\000\129\000\130\002\128\000\000\000\231\000\000\000\225\000\000\000\240\000\232\000\000\000\241\000\233\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\000\000\000\000\000\000\130\000\233\000\000\000\248\000\000\000\225\000\000\000\242\000\239\000\240\000\000\000\233\000\241\000\000\002\130\000\000\000\000\000\000\000\000\000\242\000\129\000\000\000\239\000\240\000\231\000\000\000\241\000\000\000\129\000\232\000\000\000\000\000\231\000\000\000\000\000\239\000\000\000\232\000\000\000\000\000\000\000\130\000\000\000\000\000\242\000\239\000\225\000\000\000\000\000\000\000\000\000\000\000\233\000\000\000\000\000\248\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\132\000\248\000\000\000\000\000\000\000\129\000\129\000\000\000\000\000\231\000\231\000\000\002\134\000\000\000\232\000\232\000\000\000\000\000\000\000\130\000\239\000\000\000\000\000\000\000\225\000\240\000\248\000\130\000\241\000\000\000\233\000\000\000\225\000\000\000\000\000\000\000\000\002\136\000\233\000\240\000\248\000\000\000\241\000\000\000\129\000\000\000\000\000\000\000\231\000\000\000\000\002\138\000\240\000\232\000\000\000\241\000\000\000\000\000\000\000\000\000\242\000\000\000\240\000\000\000\239\000\241\000\000\000\000\000\000\000\000\000\130\000\130\000\239\000\000\000\242\000\225\000\225\000\000\000\000\000\000\000\000\000\233\000\233\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\242\000\000\000\231\000\000\000\000\000\000\000\240\000\232\000\000\000\241\000\000\000\248\000\130\000\000\000\000\000\000\000\000\000\225\000\239\000\239\000\000\000\000\002\140\000\233\000\000\000\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\142\000\000\000\248\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\129\000\248\002\144\000\240\000\231\000\000\000\241\000\000\000\000\000\232\000\239\000\240\002\186\000\000\000\241\000\129\000\130\000\000\000\000\000\231\000\000\000\225\000\129\000\000\000\232\000\000\000\231\000\233\000\000\000\000\000\129\000\232\000\000\000\000\000\231\000\000\000\000\000\000\000\242\000\232\000\000\000\000\000\248\000\129\000\000\000\000\000\242\000\231\000\000\000\000\000\000\000\000\000\232\002\188\000\240\000\240\000\000\000\241\000\241\000\000\000\000\000\239\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\000\000\000\000\000\000\000\000\000\000\233\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\248\000\130\000\000\000\242\000\242\000\233\000\225\000\240\000\248\000\130\000\241\002\190\000\233\000\000\000\225\000\000\000\000\000\000\000\000\002\192\000\233\000\129\000\130\000\000\000\239\000\231\000\000\000\225\000\000\000\000\000\232\000\000\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\129\000\242\000\000\000\000\000\231\000\239\000\000\000\000\000\000\000\232\000\248\000\248\000\000\000\239\000\000\000\000\000\000\000\240\000\000\000\000\000\241\002\194\002\196\000\000\000\000\000\000\000\239\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\232\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\130\000\232\000\000\000\000\000\248\000\225\000\000\000\242\000\000\000\000\000\000\000\233\000\000\000\000\000\000\002\198\000\000\000\000\000\000\000\129\000\130\000\240\000\000\000\231\000\241\000\225\000\000\000\000\000\232\000\000\000\000\000\233\000\000\000\129\000\000\000\000\000\240\000\231\000\000\000\241\000\000\000\000\000\232\000\240\000\000\000\239\000\241\000\130\000\000\000\000\000\000\000\240\000\225\000\000\000\241\000\248\000\242\000\130\000\233\000\000\000\000\000\000\000\225\000\000\000\240\000\239\002\200\000\241\000\233\000\000\000\129\000\242\000\000\000\000\000\231\000\000\000\000\000\000\000\242\000\232\000\000\000\000\000\000\000\000\000\130\000\000\000\242\000\000\000\000\000\225\000\000\000\000\000\239\000\000\000\000\000\233\000\129\000\129\000\130\000\242\000\231\000\231\000\239\000\225\000\248\000\232\000\232\000\000\000\000\000\233\000\000\000\000\000\000\000\000\000\129\002\202\000\000\000\000\000\231\000\248\000\000\000\000\000\000\000\232\000\000\000\000\000\248\000\000\000\240\000\239\002\204\000\241\000\000\000\000\000\248\000\130\000\000\002\206\000\000\000\000\000\225\000\000\000\000\000\239\000\000\002\208\000\233\000\248\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\000\002\210\000\000\000\129\000\130\000\130\000\242\000\231\000\000\000\225\000\225\000\000\000\232\000\000\000\000\000\233\000\233\000\000\000\240\000\000\000\000\000\241\000\130\000\239\000\000\000\000\000\242\000\225\000\240\000\000\000\000\000\241\000\129\000\233\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\232\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\239\000\000\000\000\000\242\000\248\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\242\000\000\002\212\000\000\000\239\000\130\000\240\000\000\000\000\000\241\000\225\000\248\000\000\000\000\000\000\000\129\000\233\000\000\000\000\000\231\000\000\000\000\004\213\000\000\000\232\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\129\000\130\000\000\000\000\000\231\000\248\000\225\000\000\000\242\000\232\000\240\000\000\000\233\000\241\000\000\000\248\004\219\000\239\000\129\000\000\000\000\000\000\000\231\000\000\000\000\000\000\004\221\000\232\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\240\000\000\000\241\000\241\000\000\000\248\000\000\000\000\000\242\000\239\000\130\000\000\000\000\000\000\000\129\000\225\004\223\000\240\000\231\000\248\000\241\000\233\000\000\000\232\000\000\000\000\000\000\000\000\000\130\000\000\004\225\000\000\000\000\000\225\000\242\000\242\000\000\000\000\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\225\000\242\000\000\000\000\000\239\000\248\000\233\000\000\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\004\227\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\248\000\248\000\225\000\000\000\000\000\000\000\000\000\000\000\233\000\239\000\240\004\229\004\231\000\241\000\000\000\000\000\242\000\000\000\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\004\235\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\240\000\248\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\237\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\000\000\242\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\239\000\000\000\000\000\000\000\000\000\000\000\000\000\248\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\241\000\000\000\000\000\000\000\000\000\000\000\000\000\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\243\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\019")) let semantic_action = [| @@ -1749,13 +1753,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_dexpr = Obj.magic _1 in + let _1 : 'tv_dargexpr = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_aexpr = -# 2284 "parser_cocci_menhir.mly" - ( Ast0.set_arg_exp _1 ) -# 1759 "parser_cocci_menhir.ml" +# 2320 "parser_cocci_menhir.mly" + ( Ast0.set_arg_exp _1 ) +# 1763 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -1774,14 +1778,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 134 "parser_cocci_menhir.mly" +# 136 "parser_cocci_menhir.mly" (Parse_aux.list_info) -# 1780 "parser_cocci_menhir.ml" +# 1784 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_aexpr = -# 2286 "parser_cocci_menhir.mly" +# 2322 "parser_cocci_menhir.mly" ( let (nm,lenname,pure,clt) = _1 in let nm = P.clt2mcode nm clt in let lenname = @@ -1790,7 +1794,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct | Ast.MetaLen nm -> Ast0.MetaListLen(P.clt2mcode nm clt) | Ast.CstLen n -> Ast0.CstListLen n in Ast0.wrap(Ast0.MetaExprList(nm,lenname,pure)) ) -# 1794 "parser_cocci_menhir.ml" +# 1798 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -1812,9 +1816,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_aexpr = -# 2295 "parser_cocci_menhir.mly" +# 2331 "parser_cocci_menhir.mly" ( Ast0.set_arg_exp(Ast0.wrap(Ast0.TypeExp(_1))) ) -# 1818 "parser_cocci_menhir.ml" +# 1822 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -1834,9 +1838,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_any_strict = -# 2331 "parser_cocci_menhir.mly" +# 2367 "parser_cocci_menhir.mly" ( Ast.WhenAny ) -# 1840 "parser_cocci_menhir.ml" +# 1844 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -1856,9 +1860,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_any_strict = -# 2332 "parser_cocci_menhir.mly" +# 2368 "parser_cocci_menhir.mly" ( Ast.WhenStrict ) -# 1862 "parser_cocci_menhir.ml" +# 1866 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -1878,9 +1882,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_any_strict = -# 2333 "parser_cocci_menhir.mly" +# 2369 "parser_cocci_menhir.mly" ( Ast.WhenForall ) -# 1884 "parser_cocci_menhir.ml" +# 1888 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -1900,9 +1904,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_any_strict = -# 2334 "parser_cocci_menhir.mly" +# 2370 "parser_cocci_menhir.mly" ( Ast.WhenExists ) -# 1906 "parser_cocci_menhir.ml" +# 1910 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -1924,9 +1928,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1505 "parser_cocci_menhir.mly" +# 1541 "parser_cocci_menhir.mly" ( _1 ) -# 1930 "parser_cocci_menhir.ml" +# 1934 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -1956,17 +1960,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 168 "parser_cocci_menhir.mly" +# 171 "parser_cocci_menhir.mly" (Data.clt) -# 1962 "parser_cocci_menhir.ml" +# 1966 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1507 "parser_cocci_menhir.mly" +# 1543 "parser_cocci_menhir.mly" ( P.arith_op Ast.Mul _1 _2 _3 ) -# 1970 "parser_cocci_menhir.ml" +# 1974 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -1996,17 +2000,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 166 "parser_cocci_menhir.mly" +# 169 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) -# 2002 "parser_cocci_menhir.ml" +# 2006 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1509 "parser_cocci_menhir.mly" +# 1545 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) -# 2010 "parser_cocci_menhir.ml" +# 2014 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2036,17 +2040,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 167 "parser_cocci_menhir.mly" +# 170 "parser_cocci_menhir.mly" (Data.clt) -# 2042 "parser_cocci_menhir.ml" +# 2046 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1511 "parser_cocci_menhir.mly" +# 1547 "parser_cocci_menhir.mly" ( P.arith_op Ast.Plus _1 _2 _3 ) -# 2050 "parser_cocci_menhir.ml" +# 2054 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2076,17 +2080,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 167 "parser_cocci_menhir.mly" +# 170 "parser_cocci_menhir.mly" (Data.clt) -# 2082 "parser_cocci_menhir.ml" +# 2086 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1513 "parser_cocci_menhir.mly" +# 1549 "parser_cocci_menhir.mly" ( P.arith_op Ast.Minus _1 _2 _3 ) -# 2090 "parser_cocci_menhir.ml" +# 2094 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2116,17 +2120,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 165 "parser_cocci_menhir.mly" +# 168 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) -# 2122 "parser_cocci_menhir.ml" +# 2126 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1515 "parser_cocci_menhir.mly" +# 1551 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) -# 2130 "parser_cocci_menhir.ml" +# 2134 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2156,17 +2160,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 165 "parser_cocci_menhir.mly" +# 168 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) -# 2162 "parser_cocci_menhir.ml" +# 2166 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1517 "parser_cocci_menhir.mly" +# 1553 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) -# 2170 "parser_cocci_menhir.ml" +# 2174 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2196,17 +2200,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 164 "parser_cocci_menhir.mly" +# 167 "parser_cocci_menhir.mly" (Ast_cocci.logicalOp * Data.clt) -# 2202 "parser_cocci_menhir.ml" +# 2206 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1519 "parser_cocci_menhir.mly" +# 1555 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.logic_op op _1 clt _3 ) -# 2210 "parser_cocci_menhir.ml" +# 2214 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2236,17 +2240,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 163 "parser_cocci_menhir.mly" +# 166 "parser_cocci_menhir.mly" (Data.clt) -# 2242 "parser_cocci_menhir.ml" +# 2246 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1521 "parser_cocci_menhir.mly" +# 1557 "parser_cocci_menhir.mly" ( P.logic_op Ast.Eq _1 _2 _3 ) -# 2250 "parser_cocci_menhir.ml" +# 2254 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2276,17 +2280,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 163 "parser_cocci_menhir.mly" +# 166 "parser_cocci_menhir.mly" (Data.clt) -# 2282 "parser_cocci_menhir.ml" +# 2286 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1523 "parser_cocci_menhir.mly" +# 1559 "parser_cocci_menhir.mly" ( P.logic_op Ast.NotEq _1 _2 _3 ) -# 2290 "parser_cocci_menhir.ml" +# 2294 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2316,17 +2320,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 162 "parser_cocci_menhir.mly" +# 165 "parser_cocci_menhir.mly" (Data.clt) -# 2322 "parser_cocci_menhir.ml" +# 2326 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1525 "parser_cocci_menhir.mly" +# 1561 "parser_cocci_menhir.mly" ( P.arith_op Ast.And _1 _2 _3 ) -# 2330 "parser_cocci_menhir.ml" +# 2334 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2356,17 +2360,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 160 "parser_cocci_menhir.mly" +# 163 "parser_cocci_menhir.mly" (Data.clt) -# 2362 "parser_cocci_menhir.ml" +# 2366 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1527 "parser_cocci_menhir.mly" +# 1563 "parser_cocci_menhir.mly" ( P.arith_op Ast.Or _1 _2 _3 ) -# 2370 "parser_cocci_menhir.ml" +# 2374 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2396,17 +2400,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 161 "parser_cocci_menhir.mly" +# 164 "parser_cocci_menhir.mly" (Data.clt) -# 2402 "parser_cocci_menhir.ml" +# 2406 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1529 "parser_cocci_menhir.mly" +# 1565 "parser_cocci_menhir.mly" ( P.arith_op Ast.Xor _1 _2 _3 ) -# 2410 "parser_cocci_menhir.ml" +# 2414 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2436,17 +2440,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 159 "parser_cocci_menhir.mly" +# 162 "parser_cocci_menhir.mly" (Data.clt) -# 2442 "parser_cocci_menhir.ml" +# 2446 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1531 "parser_cocci_menhir.mly" +# 1567 "parser_cocci_menhir.mly" ( P.logic_op Ast.AndLog _1 _2 _3 ) -# 2450 "parser_cocci_menhir.ml" +# 2454 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2476,17 +2480,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 158 "parser_cocci_menhir.mly" +# 161 "parser_cocci_menhir.mly" (Data.clt) -# 2482 "parser_cocci_menhir.ml" +# 2486 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1533 "parser_cocci_menhir.mly" +# 1569 "parser_cocci_menhir.mly" ( P.logic_op Ast.OrLog _1 _2 _3 ) -# 2490 "parser_cocci_menhir.ml" +# 2494 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2508,9 +2512,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1505 "parser_cocci_menhir.mly" +# 1541 "parser_cocci_menhir.mly" ( _1 ) -# 2514 "parser_cocci_menhir.ml" +# 2518 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2540,17 +2544,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 168 "parser_cocci_menhir.mly" +# 171 "parser_cocci_menhir.mly" (Data.clt) -# 2546 "parser_cocci_menhir.ml" +# 2550 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1507 "parser_cocci_menhir.mly" +# 1543 "parser_cocci_menhir.mly" ( P.arith_op Ast.Mul _1 _2 _3 ) -# 2554 "parser_cocci_menhir.ml" +# 2558 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2580,17 +2584,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 166 "parser_cocci_menhir.mly" +# 169 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) -# 2586 "parser_cocci_menhir.ml" +# 2590 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1509 "parser_cocci_menhir.mly" +# 1545 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) -# 2594 "parser_cocci_menhir.ml" +# 2598 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2620,17 +2624,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 167 "parser_cocci_menhir.mly" +# 170 "parser_cocci_menhir.mly" (Data.clt) -# 2626 "parser_cocci_menhir.ml" +# 2630 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1511 "parser_cocci_menhir.mly" +# 1547 "parser_cocci_menhir.mly" ( P.arith_op Ast.Plus _1 _2 _3 ) -# 2634 "parser_cocci_menhir.ml" +# 2638 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2660,17 +2664,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 167 "parser_cocci_menhir.mly" +# 170 "parser_cocci_menhir.mly" (Data.clt) -# 2666 "parser_cocci_menhir.ml" +# 2670 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1513 "parser_cocci_menhir.mly" +# 1549 "parser_cocci_menhir.mly" ( P.arith_op Ast.Minus _1 _2 _3 ) -# 2674 "parser_cocci_menhir.ml" +# 2678 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2700,17 +2704,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 165 "parser_cocci_menhir.mly" +# 168 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) -# 2706 "parser_cocci_menhir.ml" +# 2710 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1515 "parser_cocci_menhir.mly" +# 1551 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) -# 2714 "parser_cocci_menhir.ml" +# 2718 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2740,17 +2744,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 165 "parser_cocci_menhir.mly" +# 168 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) -# 2746 "parser_cocci_menhir.ml" +# 2750 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1517 "parser_cocci_menhir.mly" +# 1553 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) -# 2754 "parser_cocci_menhir.ml" +# 2758 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2780,17 +2784,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 164 "parser_cocci_menhir.mly" +# 167 "parser_cocci_menhir.mly" (Ast_cocci.logicalOp * Data.clt) -# 2786 "parser_cocci_menhir.ml" +# 2790 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1519 "parser_cocci_menhir.mly" +# 1555 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.logic_op op _1 clt _3 ) -# 2794 "parser_cocci_menhir.ml" +# 2798 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2820,17 +2824,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 163 "parser_cocci_menhir.mly" +# 166 "parser_cocci_menhir.mly" (Data.clt) -# 2826 "parser_cocci_menhir.ml" +# 2830 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1521 "parser_cocci_menhir.mly" +# 1557 "parser_cocci_menhir.mly" ( P.logic_op Ast.Eq _1 _2 _3 ) -# 2834 "parser_cocci_menhir.ml" +# 2838 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2860,17 +2864,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 163 "parser_cocci_menhir.mly" +# 166 "parser_cocci_menhir.mly" (Data.clt) -# 2866 "parser_cocci_menhir.ml" +# 2870 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1523 "parser_cocci_menhir.mly" +# 1559 "parser_cocci_menhir.mly" ( P.logic_op Ast.NotEq _1 _2 _3 ) -# 2874 "parser_cocci_menhir.ml" +# 2878 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2900,17 +2904,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 162 "parser_cocci_menhir.mly" +# 165 "parser_cocci_menhir.mly" (Data.clt) -# 2906 "parser_cocci_menhir.ml" +# 2910 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1525 "parser_cocci_menhir.mly" +# 1561 "parser_cocci_menhir.mly" ( P.arith_op Ast.And _1 _2 _3 ) -# 2914 "parser_cocci_menhir.ml" +# 2918 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2940,17 +2944,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 160 "parser_cocci_menhir.mly" +# 163 "parser_cocci_menhir.mly" (Data.clt) -# 2946 "parser_cocci_menhir.ml" +# 2950 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1527 "parser_cocci_menhir.mly" +# 1563 "parser_cocci_menhir.mly" ( P.arith_op Ast.Or _1 _2 _3 ) -# 2954 "parser_cocci_menhir.ml" +# 2958 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2980,17 +2984,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 161 "parser_cocci_menhir.mly" +# 164 "parser_cocci_menhir.mly" (Data.clt) -# 2986 "parser_cocci_menhir.ml" +# 2990 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1529 "parser_cocci_menhir.mly" +# 1565 "parser_cocci_menhir.mly" ( P.arith_op Ast.Xor _1 _2 _3 ) -# 2994 "parser_cocci_menhir.ml" +# 2998 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3020,17 +3024,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 159 "parser_cocci_menhir.mly" +# 162 "parser_cocci_menhir.mly" (Data.clt) -# 3026 "parser_cocci_menhir.ml" +# 3030 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1531 "parser_cocci_menhir.mly" +# 1567 "parser_cocci_menhir.mly" ( P.logic_op Ast.AndLog _1 _2 _3 ) -# 3034 "parser_cocci_menhir.ml" +# 3038 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3060,17 +3064,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 158 "parser_cocci_menhir.mly" +# 161 "parser_cocci_menhir.mly" (Data.clt) -# 3066 "parser_cocci_menhir.ml" +# 3070 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1533 "parser_cocci_menhir.mly" +# 1569 "parser_cocci_menhir.mly" ( P.logic_op Ast.OrLog _1 _2 _3 ) -# 3074 "parser_cocci_menhir.ml" +# 3078 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3092,9 +3096,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1505 "parser_cocci_menhir.mly" +# 1541 "parser_cocci_menhir.mly" ( _1 ) -# 3098 "parser_cocci_menhir.ml" +# 3102 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3124,17 +3128,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 168 "parser_cocci_menhir.mly" +# 171 "parser_cocci_menhir.mly" (Data.clt) -# 3130 "parser_cocci_menhir.ml" +# 3134 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1507 "parser_cocci_menhir.mly" +# 1543 "parser_cocci_menhir.mly" ( P.arith_op Ast.Mul _1 _2 _3 ) -# 3138 "parser_cocci_menhir.ml" +# 3142 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3164,17 +3168,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 166 "parser_cocci_menhir.mly" +# 169 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) -# 3170 "parser_cocci_menhir.ml" +# 3174 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1509 "parser_cocci_menhir.mly" +# 1545 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) -# 3178 "parser_cocci_menhir.ml" +# 3182 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3204,17 +3208,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 167 "parser_cocci_menhir.mly" +# 170 "parser_cocci_menhir.mly" (Data.clt) -# 3210 "parser_cocci_menhir.ml" +# 3214 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1511 "parser_cocci_menhir.mly" +# 1547 "parser_cocci_menhir.mly" ( P.arith_op Ast.Plus _1 _2 _3 ) -# 3218 "parser_cocci_menhir.ml" +# 3222 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3244,17 +3248,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 167 "parser_cocci_menhir.mly" +# 170 "parser_cocci_menhir.mly" (Data.clt) -# 3250 "parser_cocci_menhir.ml" +# 3254 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1513 "parser_cocci_menhir.mly" +# 1549 "parser_cocci_menhir.mly" ( P.arith_op Ast.Minus _1 _2 _3 ) -# 3258 "parser_cocci_menhir.ml" +# 3262 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3284,17 +3288,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 165 "parser_cocci_menhir.mly" +# 168 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) -# 3290 "parser_cocci_menhir.ml" +# 3294 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1515 "parser_cocci_menhir.mly" +# 1551 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) -# 3298 "parser_cocci_menhir.ml" +# 3302 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3324,17 +3328,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 165 "parser_cocci_menhir.mly" +# 168 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) -# 3330 "parser_cocci_menhir.ml" +# 3334 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1517 "parser_cocci_menhir.mly" +# 1553 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) -# 3338 "parser_cocci_menhir.ml" +# 3342 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3364,17 +3368,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 164 "parser_cocci_menhir.mly" +# 167 "parser_cocci_menhir.mly" (Ast_cocci.logicalOp * Data.clt) -# 3370 "parser_cocci_menhir.ml" +# 3374 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1519 "parser_cocci_menhir.mly" +# 1555 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.logic_op op _1 clt _3 ) -# 3378 "parser_cocci_menhir.ml" +# 3382 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3404,17 +3408,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 163 "parser_cocci_menhir.mly" +# 166 "parser_cocci_menhir.mly" (Data.clt) -# 3410 "parser_cocci_menhir.ml" +# 3414 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1521 "parser_cocci_menhir.mly" +# 1557 "parser_cocci_menhir.mly" ( P.logic_op Ast.Eq _1 _2 _3 ) -# 3418 "parser_cocci_menhir.ml" +# 3422 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3444,17 +3448,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 163 "parser_cocci_menhir.mly" +# 166 "parser_cocci_menhir.mly" (Data.clt) -# 3450 "parser_cocci_menhir.ml" +# 3454 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1523 "parser_cocci_menhir.mly" +# 1559 "parser_cocci_menhir.mly" ( P.logic_op Ast.NotEq _1 _2 _3 ) -# 3458 "parser_cocci_menhir.ml" +# 3462 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3484,17 +3488,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 162 "parser_cocci_menhir.mly" +# 165 "parser_cocci_menhir.mly" (Data.clt) -# 3490 "parser_cocci_menhir.ml" +# 3494 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1525 "parser_cocci_menhir.mly" +# 1561 "parser_cocci_menhir.mly" ( P.arith_op Ast.And _1 _2 _3 ) -# 3498 "parser_cocci_menhir.ml" +# 3502 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3524,17 +3528,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 160 "parser_cocci_menhir.mly" +# 163 "parser_cocci_menhir.mly" (Data.clt) -# 3530 "parser_cocci_menhir.ml" +# 3534 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1527 "parser_cocci_menhir.mly" +# 1563 "parser_cocci_menhir.mly" ( P.arith_op Ast.Or _1 _2 _3 ) -# 3538 "parser_cocci_menhir.ml" +# 3542 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3564,17 +3568,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 161 "parser_cocci_menhir.mly" +# 164 "parser_cocci_menhir.mly" (Data.clt) -# 3570 "parser_cocci_menhir.ml" +# 3574 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1529 "parser_cocci_menhir.mly" +# 1565 "parser_cocci_menhir.mly" ( P.arith_op Ast.Xor _1 _2 _3 ) -# 3578 "parser_cocci_menhir.ml" +# 3582 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3604,241 +3608,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 159 "parser_cocci_menhir.mly" +# 162 "parser_cocci_menhir.mly" (Data.clt) -# 3610 "parser_cocci_menhir.ml" +# 3614 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1531 "parser_cocci_menhir.mly" +# 1567 "parser_cocci_menhir.mly" ( P.logic_op Ast.AndLog _1 _2 _3 ) -# 3618 "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 = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _3 : 'tv_arith_expr_bis = Obj.magic _3 in - let _2 : ( -# 158 "parser_cocci_menhir.mly" - (Data.clt) -# 3650 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1533 "parser_cocci_menhir.mly" - ( P.logic_op Ast.OrLog _1 _2 _3 ) -# 3658 "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.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : 'tv_cast_expr_expr_invalid_ = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_arith_expr_expr_invalid_ = -# 1505 "parser_cocci_menhir.mly" - ( _1 ) -# 3682 "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 = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _3 : 'tv_arith_expr_bis = Obj.magic _3 in - let _2 : ( -# 168 "parser_cocci_menhir.mly" - (Data.clt) -# 3714 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_arith_expr_expr_invalid_ = -# 1507 "parser_cocci_menhir.mly" - ( P.arith_op Ast.Mul _1 _2 _3 ) -# 3722 "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 = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _3 : 'tv_arith_expr_bis = Obj.magic _3 in - let _2 : ( -# 166 "parser_cocci_menhir.mly" - (Ast_cocci.arithOp * Data.clt) -# 3754 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_arith_expr_expr_invalid_ = -# 1509 "parser_cocci_menhir.mly" - ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) -# 3762 "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 = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _3 : 'tv_arith_expr_bis = Obj.magic _3 in - let _2 : ( -# 167 "parser_cocci_menhir.mly" - (Data.clt) -# 3794 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_arith_expr_expr_invalid_ = -# 1511 "parser_cocci_menhir.mly" - ( P.arith_op Ast.Plus _1 _2 _3 ) -# 3802 "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 = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _3 : 'tv_arith_expr_bis = Obj.magic _3 in - let _2 : ( -# 167 "parser_cocci_menhir.mly" - (Data.clt) -# 3834 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_arith_expr_expr_invalid_ = -# 1513 "parser_cocci_menhir.mly" - ( P.arith_op Ast.Minus _1 _2 _3 ) -# 3842 "parser_cocci_menhir.ml" +# 3622 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3868,17 +3648,81 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 165 "parser_cocci_menhir.mly" - (Ast_cocci.arithOp * Data.clt) -# 3874 "parser_cocci_menhir.ml" +# 161 "parser_cocci_menhir.mly" + (Data.clt) +# 3654 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_arith_expr_eexpr_nest_expressions_ = +# 1569 "parser_cocci_menhir.mly" + ( P.logic_op Ast.OrLog _1 _2 _3 ) +# 3662 "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.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_cast_expr_expr_invalid_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_arith_expr_expr_invalid_ = +# 1541 "parser_cocci_menhir.mly" + ( _1 ) +# 3686 "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 = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : 'tv_arith_expr_bis = Obj.magic _3 in + let _2 : ( +# 171 "parser_cocci_menhir.mly" + (Data.clt) +# 3718 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1515 "parser_cocci_menhir.mly" - ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) -# 3882 "parser_cocci_menhir.ml" +# 1543 "parser_cocci_menhir.mly" + ( P.arith_op Ast.Mul _1 _2 _3 ) +# 3726 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3908,17 +3752,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 165 "parser_cocci_menhir.mly" +# 169 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) -# 3914 "parser_cocci_menhir.ml" +# 3758 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1517 "parser_cocci_menhir.mly" +# 1545 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) -# 3922 "parser_cocci_menhir.ml" +# 3766 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3948,17 +3792,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 164 "parser_cocci_menhir.mly" - (Ast_cocci.logicalOp * Data.clt) -# 3954 "parser_cocci_menhir.ml" +# 170 "parser_cocci_menhir.mly" + (Data.clt) +# 3798 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1519 "parser_cocci_menhir.mly" - ( let (op,clt) = _2 in P.logic_op op _1 clt _3 ) -# 3962 "parser_cocci_menhir.ml" +# 1547 "parser_cocci_menhir.mly" + ( P.arith_op Ast.Plus _1 _2 _3 ) +# 3806 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3988,17 +3832,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 163 "parser_cocci_menhir.mly" +# 170 "parser_cocci_menhir.mly" (Data.clt) -# 3994 "parser_cocci_menhir.ml" +# 3838 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1521 "parser_cocci_menhir.mly" - ( P.logic_op Ast.Eq _1 _2 _3 ) -# 4002 "parser_cocci_menhir.ml" +# 1549 "parser_cocci_menhir.mly" + ( P.arith_op Ast.Minus _1 _2 _3 ) +# 3846 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4028,17 +3872,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 163 "parser_cocci_menhir.mly" - (Data.clt) -# 4034 "parser_cocci_menhir.ml" +# 168 "parser_cocci_menhir.mly" + (Ast_cocci.arithOp * Data.clt) +# 3878 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1523 "parser_cocci_menhir.mly" - ( P.logic_op Ast.NotEq _1 _2 _3 ) -# 4042 "parser_cocci_menhir.ml" +# 1551 "parser_cocci_menhir.mly" + ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) +# 3886 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4068,17 +3912,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 162 "parser_cocci_menhir.mly" - (Data.clt) -# 4074 "parser_cocci_menhir.ml" +# 168 "parser_cocci_menhir.mly" + (Ast_cocci.arithOp * Data.clt) +# 3918 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1525 "parser_cocci_menhir.mly" - ( P.arith_op Ast.And _1 _2 _3 ) -# 4082 "parser_cocci_menhir.ml" +# 1553 "parser_cocci_menhir.mly" + ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) +# 3926 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4108,17 +3952,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 160 "parser_cocci_menhir.mly" - (Data.clt) -# 4114 "parser_cocci_menhir.ml" +# 167 "parser_cocci_menhir.mly" + (Ast_cocci.logicalOp * Data.clt) +# 3958 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1527 "parser_cocci_menhir.mly" - ( P.arith_op Ast.Or _1 _2 _3 ) -# 4122 "parser_cocci_menhir.ml" +# 1555 "parser_cocci_menhir.mly" + ( let (op,clt) = _2 in P.logic_op op _1 clt _3 ) +# 3966 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4148,17 +3992,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 161 "parser_cocci_menhir.mly" +# 166 "parser_cocci_menhir.mly" (Data.clt) -# 4154 "parser_cocci_menhir.ml" +# 3998 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1529 "parser_cocci_menhir.mly" - ( P.arith_op Ast.Xor _1 _2 _3 ) -# 4162 "parser_cocci_menhir.ml" +# 1557 "parser_cocci_menhir.mly" + ( P.logic_op Ast.Eq _1 _2 _3 ) +# 4006 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4188,17 +4032,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 159 "parser_cocci_menhir.mly" +# 166 "parser_cocci_menhir.mly" (Data.clt) -# 4194 "parser_cocci_menhir.ml" +# 4038 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1531 "parser_cocci_menhir.mly" - ( P.logic_op Ast.AndLog _1 _2 _3 ) -# 4202 "parser_cocci_menhir.ml" +# 1559 "parser_cocci_menhir.mly" + ( P.logic_op Ast.NotEq _1 _2 _3 ) +# 4046 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4228,17 +4072,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 158 "parser_cocci_menhir.mly" +# 165 "parser_cocci_menhir.mly" (Data.clt) -# 4234 "parser_cocci_menhir.ml" +# 4078 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1533 "parser_cocci_menhir.mly" - ( P.logic_op Ast.OrLog _1 _2 _3 ) -# 4242 "parser_cocci_menhir.ml" +# 1561 "parser_cocci_menhir.mly" + ( P.arith_op Ast.And _1 _2 _3 ) +# 4086 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4250,19 +4094,75 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : 'tv_arith_expr_bis = Obj.magic _3 in + let _2 : ( +# 163 "parser_cocci_menhir.mly" + (Data.clt) +# 4118 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_arith_expr_expr_invalid_ = +# 1563 "parser_cocci_menhir.mly" + ( P.arith_op Ast.Or _1 _2 _3 ) +# 4126 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : 'tv_cast_expr_eexpr_dot_expressions_ = Obj.magic _1 in + let _3 : 'tv_arith_expr_bis = Obj.magic _3 in + let _2 : ( +# 164 "parser_cocci_menhir.mly" + (Data.clt) +# 4158 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_arith_expr_bis = -# 1538 "parser_cocci_menhir.mly" - ( _1 ) -# 4266 "parser_cocci_menhir.ml" + let _endpos = _endpos__3_ in + let _v : 'tv_arith_expr_expr_invalid_ = +# 1565 "parser_cocci_menhir.mly" + ( P.arith_op Ast.Xor _1 _2 _3 ) +# 4166 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4292,17 +4192,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 168 "parser_cocci_menhir.mly" +# 162 "parser_cocci_menhir.mly" (Data.clt) -# 4298 "parser_cocci_menhir.ml" +# 4198 "parser_cocci_menhir.ml" ) = Obj.magic _2 in - let _1 : 'tv_arith_expr_bis = Obj.magic _1 in + let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : 'tv_arith_expr_bis = -# 1540 "parser_cocci_menhir.mly" - ( P.arith_op Ast.Mul _1 _2 _3 ) -# 4306 "parser_cocci_menhir.ml" + let _v : 'tv_arith_expr_expr_invalid_ = +# 1567 "parser_cocci_menhir.mly" + ( P.logic_op Ast.AndLog _1 _2 _3 ) +# 4206 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4332,17 +4232,41 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 166 "parser_cocci_menhir.mly" - (Ast_cocci.arithOp * Data.clt) -# 4338 "parser_cocci_menhir.ml" +# 161 "parser_cocci_menhir.mly" + (Data.clt) +# 4238 "parser_cocci_menhir.ml" ) = Obj.magic _2 in - let _1 : 'tv_arith_expr_bis = Obj.magic _1 in + let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in + let _v : 'tv_arith_expr_expr_invalid_ = +# 1569 "parser_cocci_menhir.mly" + ( P.logic_op Ast.OrLog _1 _2 _3 ) +# 4246 "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.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_cast_expr_eexpr_dot_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in let _v : 'tv_arith_expr_bis = -# 1542 "parser_cocci_menhir.mly" - ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) -# 4346 "parser_cocci_menhir.ml" +# 1574 "parser_cocci_menhir.mly" + ( _1 ) +# 4270 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4372,17 +4296,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 167 "parser_cocci_menhir.mly" +# 171 "parser_cocci_menhir.mly" (Data.clt) -# 4378 "parser_cocci_menhir.ml" +# 4302 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_bis = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_bis = -# 1544 "parser_cocci_menhir.mly" - ( P.arith_op Ast.Plus _1 _2 _3 ) -# 4386 "parser_cocci_menhir.ml" +# 1576 "parser_cocci_menhir.mly" + ( P.arith_op Ast.Mul _1 _2 _3 ) +# 4310 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4412,17 +4336,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 167 "parser_cocci_menhir.mly" - (Data.clt) -# 4418 "parser_cocci_menhir.ml" +# 169 "parser_cocci_menhir.mly" + (Ast_cocci.arithOp * Data.clt) +# 4342 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_bis = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_bis = -# 1546 "parser_cocci_menhir.mly" - ( P.arith_op Ast.Minus _1 _2 _3 ) -# 4426 "parser_cocci_menhir.ml" +# 1578 "parser_cocci_menhir.mly" + ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) +# 4350 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4452,17 +4376,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 165 "parser_cocci_menhir.mly" - (Ast_cocci.arithOp * Data.clt) -# 4458 "parser_cocci_menhir.ml" +# 170 "parser_cocci_menhir.mly" + (Data.clt) +# 4382 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_bis = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_bis = -# 1548 "parser_cocci_menhir.mly" - ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) -# 4466 "parser_cocci_menhir.ml" +# 1580 "parser_cocci_menhir.mly" + ( P.arith_op Ast.Plus _1 _2 _3 ) +# 4390 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4492,17 +4416,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 165 "parser_cocci_menhir.mly" - (Ast_cocci.arithOp * Data.clt) -# 4498 "parser_cocci_menhir.ml" +# 170 "parser_cocci_menhir.mly" + (Data.clt) +# 4422 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_bis = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_bis = -# 1550 "parser_cocci_menhir.mly" - ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) -# 4506 "parser_cocci_menhir.ml" +# 1582 "parser_cocci_menhir.mly" + ( P.arith_op Ast.Minus _1 _2 _3 ) +# 4430 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4532,17 +4456,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 164 "parser_cocci_menhir.mly" - (Ast_cocci.logicalOp * Data.clt) -# 4538 "parser_cocci_menhir.ml" +# 168 "parser_cocci_menhir.mly" + (Ast_cocci.arithOp * Data.clt) +# 4462 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_bis = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_bis = -# 1552 "parser_cocci_menhir.mly" - ( let (op,clt) = _2 in P.logic_op op _1 clt _3 ) -# 4546 "parser_cocci_menhir.ml" +# 1584 "parser_cocci_menhir.mly" + ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) +# 4470 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4572,17 +4496,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 163 "parser_cocci_menhir.mly" - (Data.clt) -# 4578 "parser_cocci_menhir.ml" +# 168 "parser_cocci_menhir.mly" + (Ast_cocci.arithOp * Data.clt) +# 4502 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_bis = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_bis = -# 1554 "parser_cocci_menhir.mly" - ( P.logic_op Ast.Eq _1 _2 _3 ) -# 4586 "parser_cocci_menhir.ml" +# 1586 "parser_cocci_menhir.mly" + ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) +# 4510 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4612,17 +4536,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 163 "parser_cocci_menhir.mly" - (Data.clt) -# 4618 "parser_cocci_menhir.ml" +# 167 "parser_cocci_menhir.mly" + (Ast_cocci.logicalOp * Data.clt) +# 4542 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_bis = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_bis = -# 1556 "parser_cocci_menhir.mly" - ( P.logic_op Ast.NotEq _1 _2 _3 ) -# 4626 "parser_cocci_menhir.ml" +# 1588 "parser_cocci_menhir.mly" + ( let (op,clt) = _2 in P.logic_op op _1 clt _3 ) +# 4550 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4652,17 +4576,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 162 "parser_cocci_menhir.mly" +# 166 "parser_cocci_menhir.mly" (Data.clt) -# 4658 "parser_cocci_menhir.ml" +# 4582 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_bis = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_bis = -# 1558 "parser_cocci_menhir.mly" - ( P.arith_op Ast.And _1 _2 _3 ) -# 4666 "parser_cocci_menhir.ml" +# 1590 "parser_cocci_menhir.mly" + ( P.logic_op Ast.Eq _1 _2 _3 ) +# 4590 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4692,17 +4616,97 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 160 "parser_cocci_menhir.mly" +# 166 "parser_cocci_menhir.mly" (Data.clt) -# 4698 "parser_cocci_menhir.ml" +# 4622 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_bis = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_bis = -# 1560 "parser_cocci_menhir.mly" +# 1592 "parser_cocci_menhir.mly" + ( P.logic_op Ast.NotEq _1 _2 _3 ) +# 4630 "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 = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : 'tv_arith_expr_bis = Obj.magic _3 in + let _2 : ( +# 165 "parser_cocci_menhir.mly" + (Data.clt) +# 4662 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_arith_expr_bis = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_arith_expr_bis = +# 1594 "parser_cocci_menhir.mly" + ( P.arith_op Ast.And _1 _2 _3 ) +# 4670 "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 = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : 'tv_arith_expr_bis = Obj.magic _3 in + let _2 : ( +# 163 "parser_cocci_menhir.mly" + (Data.clt) +# 4702 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_arith_expr_bis = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_arith_expr_bis = +# 1596 "parser_cocci_menhir.mly" ( P.arith_op Ast.Or _1 _2 _3 ) -# 4706 "parser_cocci_menhir.ml" +# 4710 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4732,17 +4736,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 161 "parser_cocci_menhir.mly" +# 164 "parser_cocci_menhir.mly" (Data.clt) -# 4738 "parser_cocci_menhir.ml" +# 4742 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_bis = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_bis = -# 1562 "parser_cocci_menhir.mly" +# 1598 "parser_cocci_menhir.mly" ( P.arith_op Ast.Xor _1 _2 _3 ) -# 4746 "parser_cocci_menhir.ml" +# 4750 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4772,17 +4776,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_bis = Obj.magic _3 in let _2 : ( -# 159 "parser_cocci_menhir.mly" +# 162 "parser_cocci_menhir.mly" (Data.clt) -# 4778 "parser_cocci_menhir.ml" +# 4782 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_bis = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_bis = -# 1564 "parser_cocci_menhir.mly" +# 1600 "parser_cocci_menhir.mly" ( P.logic_op Ast.AndLog _1 _2 _3 ) -# 4786 "parser_cocci_menhir.ml" +# 4790 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4802,9 +4806,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arity = -# 625 "parser_cocci_menhir.mly" +# 628 "parser_cocci_menhir.mly" ( Ast.UNIQUE ) -# 4808 "parser_cocci_menhir.ml" +# 4812 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4824,9 +4828,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arity = -# 626 "parser_cocci_menhir.mly" +# 629 "parser_cocci_menhir.mly" ( Ast.OPT ) -# 4830 "parser_cocci_menhir.ml" +# 4834 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4846,9 +4850,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arity = -# 627 "parser_cocci_menhir.mly" +# 630 "parser_cocci_menhir.mly" ( Ast.MULTI ) -# 4852 "parser_cocci_menhir.ml" +# 4856 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4863,9 +4867,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_arity = -# 628 "parser_cocci_menhir.mly" +# 631 "parser_cocci_menhir.mly" ( Ast.NONE ) -# 4869 "parser_cocci_menhir.ml" +# 4873 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4894,22 +4898,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let r : ( -# 171 "parser_cocci_menhir.mly" +# 174 "parser_cocci_menhir.mly" (Data.clt) -# 4900 "parser_cocci_menhir.ml" +# 4904 "parser_cocci_menhir.ml" ) = Obj.magic r in let i : 'tv_option_eexpr_ = Obj.magic i in let l : ( -# 171 "parser_cocci_menhir.mly" +# 174 "parser_cocci_menhir.mly" (Data.clt) -# 4906 "parser_cocci_menhir.ml" +# 4910 "parser_cocci_menhir.ml" ) = Obj.magic l in let _startpos = _startpos_l_ in let _endpos = _endpos_r_ in let _v : 'tv_array_dec = -# 1317 "parser_cocci_menhir.mly" +# 1341 "parser_cocci_menhir.mly" ( (l,i,r) ) -# 4913 "parser_cocci_menhir.ml" +# 4917 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4931,9 +4935,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_assign_expr_eexpr_dot_expressions_ = -# 1477 "parser_cocci_menhir.mly" +# 1512 "parser_cocci_menhir.mly" ( _1 ) -# 4937 "parser_cocci_menhir.ml" +# 4941 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4963,19 +4967,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 177 "parser_cocci_menhir.mly" +# 180 "parser_cocci_menhir.mly" (Ast_cocci.assignOp * Data.clt) -# 4969 "parser_cocci_menhir.ml" +# 4973 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_eexpr_dot_expressions_ = -# 1479 "parser_cocci_menhir.mly" +# 1514 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt, Ast0.set_arg_exp _3,false)) ) -# 4979 "parser_cocci_menhir.ml" +# 4983 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5005,19 +5009,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 5011 "parser_cocci_menhir.ml" +# 5015 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_eexpr_dot_expressions_ = -# 1483 "parser_cocci_menhir.mly" +# 1518 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.Assignment (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) ) -# 5021 "parser_cocci_menhir.ml" +# 5025 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5039,9 +5043,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_assign_expr_eexpr_nest_expressions_ = -# 1477 "parser_cocci_menhir.mly" +# 1512 "parser_cocci_menhir.mly" ( _1 ) -# 5045 "parser_cocci_menhir.ml" +# 5049 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5071,19 +5075,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 177 "parser_cocci_menhir.mly" +# 180 "parser_cocci_menhir.mly" (Ast_cocci.assignOp * Data.clt) -# 5077 "parser_cocci_menhir.ml" +# 5081 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_eexpr_nest_expressions_ = -# 1479 "parser_cocci_menhir.mly" +# 1514 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt, Ast0.set_arg_exp _3,false)) ) -# 5087 "parser_cocci_menhir.ml" +# 5091 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5113,19 +5117,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 5119 "parser_cocci_menhir.ml" +# 5123 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_eexpr_nest_expressions_ = -# 1483 "parser_cocci_menhir.mly" +# 1518 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.Assignment (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) ) -# 5129 "parser_cocci_menhir.ml" +# 5133 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5147,9 +5151,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_assign_expr_expr_invalid_ = -# 1477 "parser_cocci_menhir.mly" +# 1512 "parser_cocci_menhir.mly" ( _1 ) -# 5153 "parser_cocci_menhir.ml" +# 5157 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5179,19 +5183,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 177 "parser_cocci_menhir.mly" +# 180 "parser_cocci_menhir.mly" (Ast_cocci.assignOp * Data.clt) -# 5185 "parser_cocci_menhir.ml" +# 5189 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_unary_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_expr_invalid_ = -# 1479 "parser_cocci_menhir.mly" +# 1514 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt, Ast0.set_arg_exp _3,false)) ) -# 5195 "parser_cocci_menhir.ml" +# 5199 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5221,19 +5225,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 5227 "parser_cocci_menhir.ml" +# 5231 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_unary_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_expr_invalid_ = -# 1483 "parser_cocci_menhir.mly" +# 1518 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.Assignment (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) ) -# 5237 "parser_cocci_menhir.ml" +# 5241 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5255,9 +5259,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_assign_expr_bis = -# 1488 "parser_cocci_menhir.mly" +# 1523 "parser_cocci_menhir.mly" ( _1 ) -# 5261 "parser_cocci_menhir.ml" +# 5265 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5287,19 +5291,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 177 "parser_cocci_menhir.mly" +# 180 "parser_cocci_menhir.mly" (Ast_cocci.assignOp * Data.clt) -# 5293 "parser_cocci_menhir.ml" +# 5297 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_bis = -# 1490 "parser_cocci_menhir.mly" +# 1525 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt, Ast0.set_arg_exp _3,false)) ) -# 5303 "parser_cocci_menhir.ml" +# 5307 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5329,19 +5333,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 5335 "parser_cocci_menhir.ml" +# 5339 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_bis = -# 1494 "parser_cocci_menhir.mly" +# 1529 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.Assignment (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) ) -# 5345 "parser_cocci_menhir.ml" +# 5349 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5363,9 +5367,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_basic_expr_eexpr_dot_expressions_ = -# 1474 "parser_cocci_menhir.mly" +# 1509 "parser_cocci_menhir.mly" ( _1 ) -# 5369 "parser_cocci_menhir.ml" +# 5373 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5387,9 +5391,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_basic_expr_eexpr_nest_expressions_ = -# 1474 "parser_cocci_menhir.mly" +# 1509 "parser_cocci_menhir.mly" ( _1 ) -# 5393 "parser_cocci_menhir.ml" +# 5397 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5411,9 +5415,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_basic_expr_expr_invalid_ = -# 1474 "parser_cocci_menhir.mly" +# 1509 "parser_cocci_menhir.mly" ( _1 ) -# 5417 "parser_cocci_menhir.ml" +# 5421 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5443,22 +5447,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_fun_start = Obj.magic _3 in let _2 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 5449 "parser_cocci_menhir.ml" +# 5453 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 123 "parser_cocci_menhir.mly" +# 125 "parser_cocci_menhir.mly" (Data.clt) -# 5454 "parser_cocci_menhir.ml" +# 5458 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_case_line = -# 1186 "parser_cocci_menhir.mly" +# 1198 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.Default(P.clt2mcode "default" _1,P.clt2mcode ":" _2,_3)) ) -# 5462 "parser_cocci_menhir.ml" +# 5466 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5493,22 +5497,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _4 : 'tv_fun_start = Obj.magic _4 in let _3 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 5499 "parser_cocci_menhir.ml" +# 5503 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 123 "parser_cocci_menhir.mly" +# 125 "parser_cocci_menhir.mly" (Data.clt) -# 5505 "parser_cocci_menhir.ml" +# 5509 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_case_line = -# 1189 "parser_cocci_menhir.mly" +# 1201 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Case(P.clt2mcode "case" _1,_2,P.clt2mcode ":" _3,_4)) ) -# 5512 "parser_cocci_menhir.ml" +# 5516 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5530,9 +5534,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cast_expr_eexpr_dot_expressions_ = -# 1569 "parser_cocci_menhir.mly" +# 1605 "parser_cocci_menhir.mly" ( _1 ) -# 5536 "parser_cocci_menhir.ml" +# 5540 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5567,23 +5571,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let e : 'tv_cast_expr_eexpr_dot_expressions_ = Obj.magic e in let rp : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 5573 "parser_cocci_menhir.ml" +# 5577 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 5579 "parser_cocci_menhir.ml" +# 5583 "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_ = -# 1571 "parser_cocci_menhir.mly" +# 1607 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t, P.clt2mcode ")" rp, e)) ) -# 5587 "parser_cocci_menhir.ml" +# 5591 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5605,9 +5609,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cast_expr_eexpr_invalid_ = -# 1569 "parser_cocci_menhir.mly" +# 1605 "parser_cocci_menhir.mly" ( _1 ) -# 5611 "parser_cocci_menhir.ml" +# 5615 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5642,23 +5646,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let e : 'tv_cast_expr_eexpr_invalid_ = Obj.magic e in let rp : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 5648 "parser_cocci_menhir.ml" +# 5652 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 5654 "parser_cocci_menhir.ml" +# 5658 "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_ = -# 1571 "parser_cocci_menhir.mly" +# 1607 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t, P.clt2mcode ")" rp, e)) ) -# 5662 "parser_cocci_menhir.ml" +# 5666 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5680,9 +5684,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cast_expr_eexpr_nest_expressions_ = -# 1569 "parser_cocci_menhir.mly" +# 1605 "parser_cocci_menhir.mly" ( _1 ) -# 5686 "parser_cocci_menhir.ml" +# 5690 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5717,23 +5721,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let e : 'tv_cast_expr_eexpr_nest_expressions_ = Obj.magic e in let rp : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 5723 "parser_cocci_menhir.ml" +# 5727 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 5729 "parser_cocci_menhir.ml" +# 5733 "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_ = -# 1571 "parser_cocci_menhir.mly" +# 1607 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t, P.clt2mcode ")" rp, e)) ) -# 5737 "parser_cocci_menhir.ml" +# 5741 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5755,9 +5759,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cast_expr_expr_invalid_ = -# 1569 "parser_cocci_menhir.mly" +# 1605 "parser_cocci_menhir.mly" ( _1 ) -# 5761 "parser_cocci_menhir.ml" +# 5765 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5792,23 +5796,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let e : 'tv_cast_expr_expr_invalid_ = Obj.magic e in let rp : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 5798 "parser_cocci_menhir.ml" +# 5802 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 5804 "parser_cocci_menhir.ml" +# 5808 "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_ = -# 1571 "parser_cocci_menhir.mly" +# 1607 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t, P.clt2mcode ")" rp, e)) ) -# 5812 "parser_cocci_menhir.ml" +# 5816 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5834,9 +5838,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_choose_iso = -# 307 "parser_cocci_menhir.mly" +# 310 "parser_cocci_menhir.mly" ( List.map P.id2name _2 ) -# 5840 "parser_cocci_menhir.ml" +# 5844 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5858,9 +5862,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_any_strict_ = -# 2309 "parser_cocci_menhir.mly" +# 2345 "parser_cocci_menhir.mly" ( _1 ) -# 5864 "parser_cocci_menhir.ml" +# 5868 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5882,9 +5886,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_ctype_ = -# 2309 "parser_cocci_menhir.mly" +# 2345 "parser_cocci_menhir.mly" ( _1 ) -# 5888 "parser_cocci_menhir.ml" +# 5892 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5906,9 +5910,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_d_ident_ = -# 2309 "parser_cocci_menhir.mly" +# 2345 "parser_cocci_menhir.mly" ( _1 ) -# 5912 "parser_cocci_menhir.ml" +# 5916 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5930,9 +5934,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_ = -# 2309 "parser_cocci_menhir.mly" +# 2345 "parser_cocci_menhir.mly" ( _1 ) -# 5936 "parser_cocci_menhir.ml" +# 5940 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5954,9 +5958,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_meta_ident_ = -# 2309 "parser_cocci_menhir.mly" +# 2345 "parser_cocci_menhir.mly" ( _1 ) -# 5960 "parser_cocci_menhir.ml" +# 5964 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5978,9 +5982,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_pure_ident_ = -# 2309 "parser_cocci_menhir.mly" +# 2345 "parser_cocci_menhir.mly" ( _1 ) -# 5984 "parser_cocci_menhir.ml" +# 5988 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6002,9 +6006,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_ = -# 2309 "parser_cocci_menhir.mly" +# 2345 "parser_cocci_menhir.mly" ( _1 ) -# 6008 "parser_cocci_menhir.ml" +# 6012 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6026,9 +6030,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__ = -# 2309 "parser_cocci_menhir.mly" +# 2345 "parser_cocci_menhir.mly" ( _1 ) -# 6032 "parser_cocci_menhir.ml" +# 6036 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6050,9 +6054,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__ = -# 2309 "parser_cocci_menhir.mly" +# 2345 "parser_cocci_menhir.mly" ( _1 ) -# 6056 "parser_cocci_menhir.ml" +# 6060 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6074,9 +6078,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__ = -# 2309 "parser_cocci_menhir.mly" +# 2345 "parser_cocci_menhir.mly" ( _1 ) -# 6080 "parser_cocci_menhir.ml" +# 6084 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6098,9 +6102,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__ = -# 2309 "parser_cocci_menhir.mly" +# 2345 "parser_cocci_menhir.mly" ( _1 ) -# 6104 "parser_cocci_menhir.ml" +# 6108 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6122,9 +6126,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_ = -# 2309 "parser_cocci_menhir.mly" +# 2345 "parser_cocci_menhir.mly" ( _1 ) -# 6128 "parser_cocci_menhir.ml" +# 6132 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6146,9 +6150,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__ = -# 2309 "parser_cocci_menhir.mly" +# 2345 "parser_cocci_menhir.mly" ( _1 ) -# 6152 "parser_cocci_menhir.ml" +# 6156 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6170,9 +6174,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_typedef_ident_ = -# 2309 "parser_cocci_menhir.mly" +# 2345 "parser_cocci_menhir.mly" ( _1 ) -# 6176 "parser_cocci_menhir.ml" +# 6180 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6194,9 +6198,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_ = -# 1499 "parser_cocci_menhir.mly" +# 1534 "parser_cocci_menhir.mly" ( _1 ) -# 6200 "parser_cocci_menhir.ml" +# 6204 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6234,26 +6238,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; }; } = _menhir_stack in - let r : 'tv_eexpr = Obj.magic r in + let r : 'tv_eargexpr = Obj.magic r in let dd : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 6242 "parser_cocci_menhir.ml" +# 6246 "parser_cocci_menhir.ml" ) = Obj.magic dd in let t : 'tv_option_eexpr_ = Obj.magic t in let w : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 6248 "parser_cocci_menhir.ml" +# 6252 "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_ = -# 1501 "parser_cocci_menhir.mly" +# 1537 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.CondExpr (l, P.clt2mcode "?" w, t, P.clt2mcode ":" dd, r)) ) -# 6257 "parser_cocci_menhir.ml" +# 6261 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6275,9 +6279,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_ = -# 1499 "parser_cocci_menhir.mly" +# 1534 "parser_cocci_menhir.mly" ( _1 ) -# 6281 "parser_cocci_menhir.ml" +# 6285 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6315,26 +6319,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; }; } = _menhir_stack in - let r : 'tv_eexpr = Obj.magic r in + let r : 'tv_eargexpr = Obj.magic r in let dd : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 6323 "parser_cocci_menhir.ml" +# 6327 "parser_cocci_menhir.ml" ) = Obj.magic dd in let t : 'tv_option_eexpr_ = Obj.magic t in let w : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 6329 "parser_cocci_menhir.ml" +# 6333 "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_ = -# 1501 "parser_cocci_menhir.mly" +# 1537 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.CondExpr (l, P.clt2mcode "?" w, t, P.clt2mcode ":" dd, r)) ) -# 6338 "parser_cocci_menhir.ml" +# 6342 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6356,9 +6360,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cond_expr_expr_invalid_ = -# 1499 "parser_cocci_menhir.mly" +# 1534 "parser_cocci_menhir.mly" ( _1 ) -# 6362 "parser_cocci_menhir.ml" +# 6366 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6396,26 +6400,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; }; } = _menhir_stack in - let r : 'tv_eexpr = Obj.magic r in + let r : 'tv_eargexpr = Obj.magic r in let dd : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 6404 "parser_cocci_menhir.ml" +# 6408 "parser_cocci_menhir.ml" ) = Obj.magic dd in let t : 'tv_option_eexpr_ = Obj.magic t in let w : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 6410 "parser_cocci_menhir.ml" +# 6414 "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_ = -# 1501 "parser_cocci_menhir.mly" +# 1537 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.CondExpr (l, P.clt2mcode "?" w, t, P.clt2mcode ":" dd, r)) ) -# 6419 "parser_cocci_menhir.ml" +# 6423 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6434,16 +6438,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 120 "parser_cocci_menhir.mly" +# 122 "parser_cocci_menhir.mly" (Data.clt) -# 6440 "parser_cocci_menhir.ml" +# 6444 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_const_vol = -# 1094 "parser_cocci_menhir.mly" +# 1097 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Const _1 ) -# 6447 "parser_cocci_menhir.ml" +# 6451 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6462,16 +6466,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 120 "parser_cocci_menhir.mly" +# 122 "parser_cocci_menhir.mly" (Data.clt) -# 6468 "parser_cocci_menhir.ml" +# 6472 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_const_vol = -# 1095 "parser_cocci_menhir.mly" +# 1098 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Volatile _1 ) -# 6475 "parser_cocci_menhir.ml" +# 6479 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6493,9 +6497,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_continue_list_aexpr_TEllipsis_ = -# 2085 "parser_cocci_menhir.mly" +# 2121 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [_1] ) -# 6499 "parser_cocci_menhir.ml" +# 6503 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6519,18 +6523,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 6525 "parser_cocci_menhir.ml" +# 6529 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_aexpr = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_continue_list_aexpr_TEllipsis_ = -# 2087 "parser_cocci_menhir.mly" +# 2123 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] ) -# 6534 "parser_cocci_menhir.ml" +# 6538 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6560,19 +6564,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_nonempty_list_start_aexpr_TEllipsis_ = Obj.magic _3 in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 6566 "parser_cocci_menhir.ml" +# 6570 "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_continue_list_aexpr_TEllipsis_ = -# 2090 "parser_cocci_menhir.mly" +# 2126 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2))):: (_3 build_dots build_comma) ) -# 6576 "parser_cocci_menhir.ml" +# 6580 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6598,9 +6602,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_continue_list_aexpr_TEllipsis_ = -# 2093 "parser_cocci_menhir.mly" +# 2129 "parser_cocci_menhir.mly" ( _2 ) -# 6604 "parser_cocci_menhir.ml" +# 6608 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6622,9 +6626,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_continue_list_dparam_TEllipsis_ = -# 2085 "parser_cocci_menhir.mly" +# 2121 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [_1] ) -# 6628 "parser_cocci_menhir.ml" +# 6632 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6648,18 +6652,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 6654 "parser_cocci_menhir.ml" +# 6658 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_dparam = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_continue_list_dparam_TEllipsis_ = -# 2087 "parser_cocci_menhir.mly" +# 2123 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] ) -# 6663 "parser_cocci_menhir.ml" +# 6667 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6689,19 +6693,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_nonempty_list_start_dparam_TEllipsis_ = Obj.magic _3 in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 6695 "parser_cocci_menhir.ml" +# 6699 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_dparam = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_continue_list_dparam_TEllipsis_ = -# 2090 "parser_cocci_menhir.mly" +# 2126 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2))):: (_3 build_dots build_comma) ) -# 6705 "parser_cocci_menhir.ml" +# 6709 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6727,9 +6731,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_continue_list_dparam_TEllipsis_ = -# 2093 "parser_cocci_menhir.mly" +# 2129 "parser_cocci_menhir.mly" ( _2 ) -# 6733 "parser_cocci_menhir.ml" +# 6737 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6751,9 +6755,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_continue_list_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = -# 2085 "parser_cocci_menhir.mly" +# 2121 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [_1] ) -# 6757 "parser_cocci_menhir.ml" +# 6761 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6777,18 +6781,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 6783 "parser_cocci_menhir.ml" +# 6787 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_enum_decl_one = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_continue_list_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = -# 2087 "parser_cocci_menhir.mly" +# 2123 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] ) -# 6792 "parser_cocci_menhir.ml" +# 6796 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6818,19 +6822,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = Obj.magic _3 in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 6824 "parser_cocci_menhir.ml" +# 6828 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_enum_decl_one = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_continue_list_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = -# 2090 "parser_cocci_menhir.mly" +# 2126 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2))):: (_3 build_dots build_comma) ) -# 6834 "parser_cocci_menhir.ml" +# 6838 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6856,9 +6860,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_continue_list_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = -# 2093 "parser_cocci_menhir.mly" +# 2129 "parser_cocci_menhir.mly" ( _2 ) -# 6862 "parser_cocci_menhir.ml" +# 6866 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6880,9 +6884,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_continue_list_initialize2_edots_when_TEllipsis_initialize__ = -# 2085 "parser_cocci_menhir.mly" +# 2121 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [_1] ) -# 6886 "parser_cocci_menhir.ml" +# 6890 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6906,18 +6910,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 6912 "parser_cocci_menhir.ml" +# 6916 "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_continue_list_initialize2_edots_when_TEllipsis_initialize__ = -# 2087 "parser_cocci_menhir.mly" +# 2123 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] ) -# 6921 "parser_cocci_menhir.ml" +# 6925 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6947,19 +6951,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = Obj.magic _3 in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 6953 "parser_cocci_menhir.ml" +# 6957 "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_continue_list_initialize2_edots_when_TEllipsis_initialize__ = -# 2090 "parser_cocci_menhir.mly" +# 2126 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2))):: (_3 build_dots build_comma) ) -# 6963 "parser_cocci_menhir.ml" +# 6967 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6985,9 +6989,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_continue_list_initialize2_edots_when_TEllipsis_initialize__ = -# 2093 "parser_cocci_menhir.mly" +# 2129 "parser_cocci_menhir.mly" ( _2 ) -# 6991 "parser_cocci_menhir.ml" +# 6995 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7009,9 +7013,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_continue_list_one_dec_decl__TEllipsis_ = -# 2085 "parser_cocci_menhir.mly" +# 2121 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [_1] ) -# 7015 "parser_cocci_menhir.ml" +# 7019 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7035,18 +7039,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 7041 "parser_cocci_menhir.ml" +# 7045 "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__2_ in let _v : 'tv_continue_list_one_dec_decl__TEllipsis_ = -# 2087 "parser_cocci_menhir.mly" +# 2123 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] ) -# 7050 "parser_cocci_menhir.ml" +# 7054 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7076,19 +7080,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = Obj.magic _3 in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 7082 "parser_cocci_menhir.ml" +# 7086 "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_continue_list_one_dec_decl__TEllipsis_ = -# 2090 "parser_cocci_menhir.mly" +# 2126 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2))):: (_3 build_dots build_comma) ) -# 7092 "parser_cocci_menhir.ml" +# 7096 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7114,9 +7118,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_continue_list_one_dec_decl__TEllipsis_ = -# 2093 "parser_cocci_menhir.mly" +# 2129 "parser_cocci_menhir.mly" ( _2 ) -# 7120 "parser_cocci_menhir.ml" +# 7124 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7138,9 +7142,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_continue_list_one_dec_name_opt_decl__TEllipsis_ = -# 2085 "parser_cocci_menhir.mly" +# 2121 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [_1] ) -# 7144 "parser_cocci_menhir.ml" +# 7148 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7164,18 +7168,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 7170 "parser_cocci_menhir.ml" +# 7174 "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__2_ in let _v : 'tv_continue_list_one_dec_name_opt_decl__TEllipsis_ = -# 2087 "parser_cocci_menhir.mly" +# 2123 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] ) -# 7179 "parser_cocci_menhir.ml" +# 7183 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7205,19 +7209,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = Obj.magic _3 in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 7211 "parser_cocci_menhir.ml" +# 7215 "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_continue_list_one_dec_name_opt_decl__TEllipsis_ = -# 2090 "parser_cocci_menhir.mly" +# 2126 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2))):: (_3 build_dots build_comma) ) -# 7221 "parser_cocci_menhir.ml" +# 7225 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7243,9 +7247,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_continue_list_one_dec_name_opt_decl__TEllipsis_ = -# 2093 "parser_cocci_menhir.mly" +# 2129 "parser_cocci_menhir.mly" ( _2 ) -# 7249 "parser_cocci_menhir.ml" +# 7253 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7260,9 +7264,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 = -# 794 "parser_cocci_menhir.mly" +# 797 "parser_cocci_menhir.mly" ( [] ) -# 7266 "parser_cocci_menhir.ml" +# 7270 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7290,9 +7294,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_continue_struct_decl_list = -# 795 "parser_cocci_menhir.mly" +# 798 "parser_cocci_menhir.mly" ( _1@_2 ) -# 7296 "parser_cocci_menhir.ml" +# 7300 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7314,9 +7318,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_continue_struct_decl_list = -# 796 "parser_cocci_menhir.mly" +# 799 "parser_cocci_menhir.mly" ( _1 ) -# 7320 "parser_cocci_menhir.ml" +# 7324 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7346,14 +7350,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 7352 "parser_cocci_menhir.ml" +# 7356 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 7357 "parser_cocci_menhir.ml" +# 7361 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -7363,28 +7367,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 635 "parser_cocci_menhir.mly" +# 638 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) -# 7369 "parser_cocci_menhir.ml" +# 7373 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 7375 "parser_cocci_menhir.ml" +# 7379 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 7382 "parser_cocci_menhir.ml" +# 7386 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 7388 "parser_cocci_menhir.ml" +# 7392 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7414,14 +7418,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 7420 "parser_cocci_menhir.ml" +# 7424 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 7425 "parser_cocci_menhir.ml" +# 7429 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -7431,28 +7435,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 637 "parser_cocci_menhir.mly" +# 640 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) -# 7437 "parser_cocci_menhir.ml" +# 7441 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 7443 "parser_cocci_menhir.ml" +# 7447 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 7450 "parser_cocci_menhir.ml" +# 7454 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 7456 "parser_cocci_menhir.ml" +# 7460 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7487,19 +7491,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 7493 "parser_cocci_menhir.ml" +# 7497 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 7498 "parser_cocci_menhir.ml" +# 7502 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 7503 "parser_cocci_menhir.ml" +# 7507 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -7511,30 +7515,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 639 "parser_cocci_menhir.mly" +# 642 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) ) -# 7519 "parser_cocci_menhir.ml" +# 7523 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 7525 "parser_cocci_menhir.ml" +# 7529 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 7532 "parser_cocci_menhir.ml" +# 7536 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 7538 "parser_cocci_menhir.ml" +# 7542 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7564,14 +7568,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 7570 "parser_cocci_menhir.ml" +# 7574 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 7575 "parser_cocci_menhir.ml" +# 7579 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -7581,28 +7585,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 643 "parser_cocci_menhir.mly" +# 646 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) -# 7587 "parser_cocci_menhir.ml" +# 7591 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 7593 "parser_cocci_menhir.ml" +# 7597 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 7600 "parser_cocci_menhir.ml" +# 7604 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 7606 "parser_cocci_menhir.ml" +# 7610 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7632,14 +7636,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 132 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Parse_aux.info) -# 7638 "parser_cocci_menhir.ml" +# 7642 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 7643 "parser_cocci_menhir.ml" +# 7647 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -7649,29 +7653,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 645 "parser_cocci_menhir.mly" +# 648 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 7656 "parser_cocci_menhir.ml" +# 7660 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 7662 "parser_cocci_menhir.ml" +# 7666 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 7669 "parser_cocci_menhir.ml" +# 7673 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 7675 "parser_cocci_menhir.ml" +# 7679 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7710,19 +7714,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) -# 7716 "parser_cocci_menhir.ml" +# 7720 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 112 "parser_cocci_menhir.mly" +# 114 "parser_cocci_menhir.mly" (string) -# 7721 "parser_cocci_menhir.ml" +# 7725 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let r1 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 7726 "parser_cocci_menhir.ml" +# 7730 "parser_cocci_menhir.ml" ) = Obj.magic r1 in let _startpos = _startpos_r1_ in let _endpos = _endpos_m_ in @@ -7734,33 +7738,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 648 "parser_cocci_menhir.mly" +# 651 "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*))) ) -# 7745 "parser_cocci_menhir.ml" +# 7749 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 7751 "parser_cocci_menhir.ml" +# 7755 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 7758 "parser_cocci_menhir.ml" +# 7762 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 7764 "parser_cocci_menhir.ml" +# 7768 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7790,14 +7794,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 7796 "parser_cocci_menhir.ml" +# 7800 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 7801 "parser_cocci_menhir.ml" +# 7805 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -7807,28 +7811,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty1 = ty10 in -# 655 "parser_cocci_menhir.mly" +# 658 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) ) -# 7813 "parser_cocci_menhir.ml" +# 7817 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 7819 "parser_cocci_menhir.ml" +# 7823 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 7826 "parser_cocci_menhir.ml" +# 7830 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 7832 "parser_cocci_menhir.ml" +# 7836 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7863,19 +7867,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 7869 "parser_cocci_menhir.ml" +# 7873 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 7874 "parser_cocci_menhir.ml" +# 7878 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 7879 "parser_cocci_menhir.ml" +# 7883 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -7887,30 +7891,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 657 "parser_cocci_menhir.mly" +# 660 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) ) -# 7895 "parser_cocci_menhir.ml" +# 7899 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 7901 "parser_cocci_menhir.ml" +# 7905 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 7908 "parser_cocci_menhir.ml" +# 7912 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 7914 "parser_cocci_menhir.ml" +# 7918 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7945,19 +7949,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 7951 "parser_cocci_menhir.ml" +# 7955 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 7956 "parser_cocci_menhir.ml" +# 7960 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 7961 "parser_cocci_menhir.ml" +# 7965 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -7969,31 +7973,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 661 "parser_cocci_menhir.mly" +# 664 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) -# 7978 "parser_cocci_menhir.ml" +# 7982 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 7984 "parser_cocci_menhir.ml" +# 7988 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 7991 "parser_cocci_menhir.ml" +# 7995 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 7997 "parser_cocci_menhir.ml" +# 8001 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8033,24 +8037,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty300 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 8039 "parser_cocci_menhir.ml" +# 8043 "parser_cocci_menhir.ml" ) = Obj.magic ty300 in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 8044 "parser_cocci_menhir.ml" +# 8048 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 8049 "parser_cocci_menhir.ml" +# 8053 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 8054 "parser_cocci_menhir.ml" +# 8058 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -8064,32 +8068,32 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 666 "parser_cocci_menhir.mly" +# 669 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongIntType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2; P.clt2mcode "int" ty3])) ) -# 8074 "parser_cocci_menhir.ml" +# 8078 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 8080 "parser_cocci_menhir.ml" +# 8084 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 8087 "parser_cocci_menhir.ml" +# 8091 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8093 "parser_cocci_menhir.ml" +# 8097 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8119,14 +8123,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 8125 "parser_cocci_menhir.ml" +# 8129 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 8130 "parser_cocci_menhir.ml" +# 8134 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -8136,28 +8140,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 635 "parser_cocci_menhir.mly" +# 638 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) -# 8142 "parser_cocci_menhir.ml" +# 8146 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 8148 "parser_cocci_menhir.ml" +# 8152 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 8155 "parser_cocci_menhir.ml" +# 8159 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8161 "parser_cocci_menhir.ml" +# 8165 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8187,14 +8191,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 8193 "parser_cocci_menhir.ml" +# 8197 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 8198 "parser_cocci_menhir.ml" +# 8202 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -8204,28 +8208,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 637 "parser_cocci_menhir.mly" +# 640 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) -# 8210 "parser_cocci_menhir.ml" +# 8214 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 8216 "parser_cocci_menhir.ml" +# 8220 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 8223 "parser_cocci_menhir.ml" +# 8227 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8229 "parser_cocci_menhir.ml" +# 8233 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8260,19 +8264,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 8266 "parser_cocci_menhir.ml" +# 8270 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 8271 "parser_cocci_menhir.ml" +# 8275 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 8276 "parser_cocci_menhir.ml" +# 8280 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -8284,30 +8288,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 639 "parser_cocci_menhir.mly" +# 642 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) ) -# 8292 "parser_cocci_menhir.ml" +# 8296 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 8298 "parser_cocci_menhir.ml" +# 8302 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 8305 "parser_cocci_menhir.ml" +# 8309 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8311 "parser_cocci_menhir.ml" +# 8315 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8337,14 +8341,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 8343 "parser_cocci_menhir.ml" +# 8347 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 8348 "parser_cocci_menhir.ml" +# 8352 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -8354,28 +8358,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 643 "parser_cocci_menhir.mly" +# 646 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) -# 8360 "parser_cocci_menhir.ml" +# 8364 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 8366 "parser_cocci_menhir.ml" +# 8370 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 8373 "parser_cocci_menhir.ml" +# 8377 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8379 "parser_cocci_menhir.ml" +# 8383 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8405,14 +8409,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 132 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Parse_aux.info) -# 8411 "parser_cocci_menhir.ml" +# 8415 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 8416 "parser_cocci_menhir.ml" +# 8420 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -8422,29 +8426,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 645 "parser_cocci_menhir.mly" +# 648 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 8429 "parser_cocci_menhir.ml" +# 8433 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 8435 "parser_cocci_menhir.ml" +# 8439 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 8442 "parser_cocci_menhir.ml" +# 8446 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8448 "parser_cocci_menhir.ml" +# 8452 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8483,19 +8487,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) -# 8489 "parser_cocci_menhir.ml" +# 8493 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 112 "parser_cocci_menhir.mly" +# 114 "parser_cocci_menhir.mly" (string) -# 8494 "parser_cocci_menhir.ml" +# 8498 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let r1 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 8499 "parser_cocci_menhir.ml" +# 8503 "parser_cocci_menhir.ml" ) = Obj.magic r1 in let _startpos = _startpos_r1_ in let _endpos = _endpos_m_ in @@ -8507,33 +8511,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 648 "parser_cocci_menhir.mly" +# 651 "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*))) ) -# 8518 "parser_cocci_menhir.ml" +# 8522 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 8524 "parser_cocci_menhir.ml" +# 8528 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 8531 "parser_cocci_menhir.ml" +# 8535 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8537 "parser_cocci_menhir.ml" +# 8541 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8563,14 +8567,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 8569 "parser_cocci_menhir.ml" +# 8573 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 8574 "parser_cocci_menhir.ml" +# 8578 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -8580,28 +8584,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty1 = ty10 in -# 655 "parser_cocci_menhir.mly" +# 658 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) ) -# 8586 "parser_cocci_menhir.ml" +# 8590 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 8592 "parser_cocci_menhir.ml" +# 8596 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 8599 "parser_cocci_menhir.ml" +# 8603 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8605 "parser_cocci_menhir.ml" +# 8609 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8636,19 +8640,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 8642 "parser_cocci_menhir.ml" +# 8646 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 8647 "parser_cocci_menhir.ml" +# 8651 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 8652 "parser_cocci_menhir.ml" +# 8656 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -8660,30 +8664,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 657 "parser_cocci_menhir.mly" +# 660 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) ) -# 8668 "parser_cocci_menhir.ml" +# 8672 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 8674 "parser_cocci_menhir.ml" +# 8678 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 8681 "parser_cocci_menhir.ml" +# 8685 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8687 "parser_cocci_menhir.ml" +# 8691 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8718,19 +8722,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 8724 "parser_cocci_menhir.ml" +# 8728 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 8729 "parser_cocci_menhir.ml" +# 8733 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 8734 "parser_cocci_menhir.ml" +# 8738 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -8742,31 +8746,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 661 "parser_cocci_menhir.mly" +# 664 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) -# 8751 "parser_cocci_menhir.ml" +# 8755 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 8757 "parser_cocci_menhir.ml" +# 8761 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 8764 "parser_cocci_menhir.ml" +# 8768 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8770 "parser_cocci_menhir.ml" +# 8774 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8806,24 +8810,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty300 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 8812 "parser_cocci_menhir.ml" +# 8816 "parser_cocci_menhir.ml" ) = Obj.magic ty300 in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 8817 "parser_cocci_menhir.ml" +# 8821 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 8822 "parser_cocci_menhir.ml" +# 8826 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 8827 "parser_cocci_menhir.ml" +# 8831 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -8837,32 +8841,32 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 666 "parser_cocci_menhir.mly" +# 669 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongIntType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2; P.clt2mcode "int" ty3])) ) -# 8847 "parser_cocci_menhir.ml" +# 8851 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 8853 "parser_cocci_menhir.ml" +# 8857 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 8860 "parser_cocci_menhir.ml" +# 8864 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8866 "parser_cocci_menhir.ml" +# 8870 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8887,9 +8891,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 8893 "parser_cocci_menhir.ml" +# 8897 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -8898,28 +8902,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 635 "parser_cocci_menhir.mly" +# 638 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) -# 8904 "parser_cocci_menhir.ml" +# 8908 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 8910 "parser_cocci_menhir.ml" +# 8914 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 8917 "parser_cocci_menhir.ml" +# 8921 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8923 "parser_cocci_menhir.ml" +# 8927 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8944,9 +8948,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 8950 "parser_cocci_menhir.ml" +# 8954 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -8955,28 +8959,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 637 "parser_cocci_menhir.mly" +# 640 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) -# 8961 "parser_cocci_menhir.ml" +# 8965 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 8967 "parser_cocci_menhir.ml" +# 8971 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 8974 "parser_cocci_menhir.ml" +# 8978 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8980 "parser_cocci_menhir.ml" +# 8984 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9006,14 +9010,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 9012 "parser_cocci_menhir.ml" +# 9016 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 9017 "parser_cocci_menhir.ml" +# 9021 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let _startpos = _startpos_ty100_ in let _endpos = _endpos_m_ in @@ -9024,30 +9028,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 639 "parser_cocci_menhir.mly" +# 642 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) ) -# 9032 "parser_cocci_menhir.ml" +# 9036 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 9038 "parser_cocci_menhir.ml" +# 9042 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 9045 "parser_cocci_menhir.ml" +# 9049 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9051 "parser_cocci_menhir.ml" +# 9055 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9072,9 +9076,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 9078 "parser_cocci_menhir.ml" +# 9082 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -9083,28 +9087,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 643 "parser_cocci_menhir.mly" +# 646 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) -# 9089 "parser_cocci_menhir.ml" +# 9093 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 9095 "parser_cocci_menhir.ml" +# 9099 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 9102 "parser_cocci_menhir.ml" +# 9106 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9108 "parser_cocci_menhir.ml" +# 9112 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9129,9 +9133,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 132 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Parse_aux.info) -# 9135 "parser_cocci_menhir.ml" +# 9139 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let _startpos = _startpos_p00_ in let _endpos = _endpos_m_ in @@ -9140,29 +9144,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 645 "parser_cocci_menhir.mly" +# 648 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 9147 "parser_cocci_menhir.ml" +# 9151 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 9153 "parser_cocci_menhir.ml" +# 9157 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 9160 "parser_cocci_menhir.ml" +# 9164 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9166 "parser_cocci_menhir.ml" +# 9170 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9196,14 +9200,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) -# 9202 "parser_cocci_menhir.ml" +# 9206 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 112 "parser_cocci_menhir.mly" +# 114 "parser_cocci_menhir.mly" (string) -# 9207 "parser_cocci_menhir.ml" +# 9211 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let _startpos = _startpos_r00_ in let _endpos = _endpos_m_ in @@ -9214,33 +9218,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 648 "parser_cocci_menhir.mly" +# 651 "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*))) ) -# 9225 "parser_cocci_menhir.ml" +# 9229 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 9231 "parser_cocci_menhir.ml" +# 9235 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 9238 "parser_cocci_menhir.ml" +# 9242 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9244 "parser_cocci_menhir.ml" +# 9248 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9265,9 +9269,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 9271 "parser_cocci_menhir.ml" +# 9275 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let _startpos = _startpos_ty100_ in let _endpos = _endpos_m_ in @@ -9276,28 +9280,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty1 = ty10 in -# 655 "parser_cocci_menhir.mly" +# 658 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) ) -# 9282 "parser_cocci_menhir.ml" +# 9286 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 9288 "parser_cocci_menhir.ml" +# 9292 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 9295 "parser_cocci_menhir.ml" +# 9299 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9301 "parser_cocci_menhir.ml" +# 9305 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9327,14 +9331,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 9333 "parser_cocci_menhir.ml" +# 9337 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 9338 "parser_cocci_menhir.ml" +# 9342 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let _startpos = _startpos_ty100_ in let _endpos = _endpos_m_ in @@ -9345,30 +9349,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 657 "parser_cocci_menhir.mly" +# 660 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) ) -# 9353 "parser_cocci_menhir.ml" +# 9357 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 9359 "parser_cocci_menhir.ml" +# 9363 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 9366 "parser_cocci_menhir.ml" +# 9370 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9372 "parser_cocci_menhir.ml" +# 9376 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9398,14 +9402,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 9404 "parser_cocci_menhir.ml" +# 9408 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 9409 "parser_cocci_menhir.ml" +# 9413 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let _startpos = _startpos_ty100_ in let _endpos = _endpos_m_ in @@ -9416,31 +9420,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 661 "parser_cocci_menhir.mly" +# 664 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) -# 9425 "parser_cocci_menhir.ml" +# 9429 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 9431 "parser_cocci_menhir.ml" +# 9435 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 9438 "parser_cocci_menhir.ml" +# 9442 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9444 "parser_cocci_menhir.ml" +# 9448 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9475,19 +9479,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty300 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 9481 "parser_cocci_menhir.ml" +# 9485 "parser_cocci_menhir.ml" ) = Obj.magic ty300 in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 9486 "parser_cocci_menhir.ml" +# 9490 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 9491 "parser_cocci_menhir.ml" +# 9495 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let _startpos = _startpos_ty100_ in let _endpos = _endpos_m_ in @@ -9500,32 +9504,32 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 666 "parser_cocci_menhir.mly" +# 669 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongIntType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2; P.clt2mcode "int" ty3])) ) -# 9510 "parser_cocci_menhir.ml" +# 9514 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 9516 "parser_cocci_menhir.ml" +# 9520 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 9523 "parser_cocci_menhir.ml" +# 9527 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9529 "parser_cocci_menhir.ml" +# 9533 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9550,9 +9554,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 116 "parser_cocci_menhir.mly" +# 118 "parser_cocci_menhir.mly" (Data.clt) -# 9556 "parser_cocci_menhir.ml" +# 9560 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -9561,28 +9565,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 675 "parser_cocci_menhir.mly" +# 678 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) ) -# 9567 "parser_cocci_menhir.ml" +# 9571 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 9573 "parser_cocci_menhir.ml" +# 9577 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 9580 "parser_cocci_menhir.ml" +# 9584 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9586 "parser_cocci_menhir.ml" +# 9590 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9612,14 +9616,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 9618 "parser_cocci_menhir.ml" +# 9622 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 9623 "parser_cocci_menhir.ml" +# 9627 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let _startpos = _startpos_ty100_ in let _endpos = _endpos_m_ in @@ -9630,31 +9634,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 677 "parser_cocci_menhir.mly" +# 680 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongDoubleType, [P.clt2mcode "long" ty1;P.clt2mcode "double" ty2])) ) -# 9639 "parser_cocci_menhir.ml" +# 9643 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 9645 "parser_cocci_menhir.ml" +# 9649 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 9652 "parser_cocci_menhir.ml" +# 9656 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9658 "parser_cocci_menhir.ml" +# 9662 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9679,9 +9683,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 9685 "parser_cocci_menhir.ml" +# 9689 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -9690,28 +9694,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 682 "parser_cocci_menhir.mly" +# 685 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) ) -# 9696 "parser_cocci_menhir.ml" +# 9700 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 9702 "parser_cocci_menhir.ml" +# 9706 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 9709 "parser_cocci_menhir.ml" +# 9713 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9715 "parser_cocci_menhir.ml" +# 9719 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9736,9 +9740,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 9742 "parser_cocci_menhir.ml" +# 9746 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -9747,28 +9751,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 684 "parser_cocci_menhir.mly" +# 687 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) ) -# 9753 "parser_cocci_menhir.ml" +# 9757 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 9759 "parser_cocci_menhir.ml" +# 9763 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 9766 "parser_cocci_menhir.ml" +# 9770 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9772 "parser_cocci_menhir.ml" +# 9776 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9793,9 +9797,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 115 "parser_cocci_menhir.mly" +# 117 "parser_cocci_menhir.mly" (Data.clt) -# 9799 "parser_cocci_menhir.ml" +# 9803 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -9804,28 +9808,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 686 "parser_cocci_menhir.mly" +# 689 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.SizeType,[P.clt2mcode "size_t" ty])) ) -# 9810 "parser_cocci_menhir.ml" +# 9814 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 9816 "parser_cocci_menhir.ml" +# 9820 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 9823 "parser_cocci_menhir.ml" +# 9827 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9829 "parser_cocci_menhir.ml" +# 9833 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9850,9 +9854,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 115 "parser_cocci_menhir.mly" +# 117 "parser_cocci_menhir.mly" (Data.clt) -# 9856 "parser_cocci_menhir.ml" +# 9860 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -9861,28 +9865,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 688 "parser_cocci_menhir.mly" +# 691 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.SSizeType,[P.clt2mcode "ssize_t" ty])) ) -# 9867 "parser_cocci_menhir.ml" +# 9871 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 9873 "parser_cocci_menhir.ml" +# 9877 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 9880 "parser_cocci_menhir.ml" +# 9884 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9886 "parser_cocci_menhir.ml" +# 9890 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9907,9 +9911,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 115 "parser_cocci_menhir.mly" +# 117 "parser_cocci_menhir.mly" (Data.clt) -# 9913 "parser_cocci_menhir.ml" +# 9917 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -9918,28 +9922,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 690 "parser_cocci_menhir.mly" +# 693 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.PtrDiffType,[P.clt2mcode "ptrdiff_t" ty])) ) -# 9924 "parser_cocci_menhir.ml" +# 9928 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 9930 "parser_cocci_menhir.ml" +# 9934 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 9937 "parser_cocci_menhir.ml" +# 9941 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9943 "parser_cocci_menhir.ml" +# 9947 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9970,9 +9974,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 : ( -# 116 "parser_cocci_menhir.mly" +# 118 "parser_cocci_menhir.mly" (Data.clt) -# 9976 "parser_cocci_menhir.ml" +# 9980 "parser_cocci_menhir.ml" ) = Obj.magic s00 in let _startpos = _startpos_s00_ in let _endpos = _endpos_m_ in @@ -9983,28 +9987,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let i = i0 in let s = s0 in -# 692 "parser_cocci_menhir.mly" +# 695 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, Some i)) ) -# 9989 "parser_cocci_menhir.ml" +# 9993 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 9995 "parser_cocci_menhir.ml" +# 9999 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 10002 "parser_cocci_menhir.ml" +# 10006 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 10008 "parser_cocci_menhir.ml" +# 10012 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10044,20 +10048,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 10050 "parser_cocci_menhir.ml" +# 10054 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in let l00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 10056 "parser_cocci_menhir.ml" +# 10060 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let s00 : ( -# 116 "parser_cocci_menhir.mly" +# 118 "parser_cocci_menhir.mly" (Data.clt) -# 10061 "parser_cocci_menhir.ml" +# 10065 "parser_cocci_menhir.ml" ) = Obj.magic s00 in let _startpos = _startpos_s00_ in let _endpos = _endpos_m_ in @@ -10075,35 +10079,35 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 10079 "parser_cocci_menhir.ml" +# 10083 "parser_cocci_menhir.ml" in -# 694 "parser_cocci_menhir.mly" +# 697 "parser_cocci_menhir.mly" ( (if i = None && !Data.in_iso then failwith "enums must be named in the iso file"); Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)), P.clt2mcode "{" l, ids, P.clt2mcode "}" r)) ) -# 10088 "parser_cocci_menhir.ml" +# 10092 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 10094 "parser_cocci_menhir.ml" +# 10098 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 10101 "parser_cocci_menhir.ml" +# 10105 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 10107 "parser_cocci_menhir.ml" +# 10111 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10148,21 +10152,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 10154 "parser_cocci_menhir.ml" +# 10158 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in let l00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 10160 "parser_cocci_menhir.ml" +# 10164 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let x000 : 'tv_ident = Obj.magic x000 in let s00 : ( -# 116 "parser_cocci_menhir.mly" +# 118 "parser_cocci_menhir.mly" (Data.clt) -# 10166 "parser_cocci_menhir.ml" +# 10170 "parser_cocci_menhir.ml" ) = Obj.magic s00 in let _startpos = _startpos_s00_ in let _endpos = _endpos_m_ in @@ -10183,35 +10187,35 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 10187 "parser_cocci_menhir.ml" +# 10191 "parser_cocci_menhir.ml" in -# 694 "parser_cocci_menhir.mly" +# 697 "parser_cocci_menhir.mly" ( (if i = None && !Data.in_iso then failwith "enums must be named in the iso file"); Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)), P.clt2mcode "{" l, ids, P.clt2mcode "}" r)) ) -# 10196 "parser_cocci_menhir.ml" +# 10200 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 10202 "parser_cocci_menhir.ml" +# 10206 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 10209 "parser_cocci_menhir.ml" +# 10213 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 10215 "parser_cocci_menhir.ml" +# 10219 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10251,28 +10255,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let i = i0 in let s = s0 in -# 699 "parser_cocci_menhir.mly" +# 702 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) ) -# 10257 "parser_cocci_menhir.ml" +# 10261 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 10263 "parser_cocci_menhir.ml" +# 10267 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 10270 "parser_cocci_menhir.ml" +# 10274 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 10276 "parser_cocci_menhir.ml" +# 10280 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10312,15 +10316,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 10318 "parser_cocci_menhir.ml" +# 10322 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 10324 "parser_cocci_menhir.ml" +# 10328 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let s00 : 'tv_struct_or_union = Obj.magic s00 in let _startpos = _startpos_s00_ in @@ -10339,36 +10343,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 10343 "parser_cocci_menhir.ml" +# 10347 "parser_cocci_menhir.ml" in -# 702 "parser_cocci_menhir.mly" +# 705 "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)) ) -# 10353 "parser_cocci_menhir.ml" +# 10357 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 10359 "parser_cocci_menhir.ml" +# 10363 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 10366 "parser_cocci_menhir.ml" +# 10370 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 10372 "parser_cocci_menhir.ml" +# 10376 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10413,15 +10417,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 10419 "parser_cocci_menhir.ml" +# 10423 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 10425 "parser_cocci_menhir.ml" +# 10429 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let x000 : 'tv_type_ident = Obj.magic x000 in let s00 : 'tv_struct_or_union = Obj.magic s00 in @@ -10444,36 +10448,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 10448 "parser_cocci_menhir.ml" +# 10452 "parser_cocci_menhir.ml" in -# 702 "parser_cocci_menhir.mly" +# 705 "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)) ) -# 10458 "parser_cocci_menhir.ml" +# 10462 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 10464 "parser_cocci_menhir.ml" +# 10468 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 10471 "parser_cocci_menhir.ml" +# 10475 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 10477 "parser_cocci_menhir.ml" +# 10481 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10513,20 +10517,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 10519 "parser_cocci_menhir.ml" +# 10523 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 10525 "parser_cocci_menhir.ml" +# 10529 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let s00 : ( -# 132 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Parse_aux.info) -# 10530 "parser_cocci_menhir.ml" +# 10534 "parser_cocci_menhir.ml" ) = Obj.magic s00 in let _startpos = _startpos_s00_ in let _endpos = _endpos_m_ in @@ -10541,30 +10545,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let l = l0 in let s = s0 in -# 708 "parser_cocci_menhir.mly" +# 711 "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)) ) -# 10549 "parser_cocci_menhir.ml" +# 10553 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 10555 "parser_cocci_menhir.ml" +# 10559 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 10562 "parser_cocci_menhir.ml" +# 10566 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 10568 "parser_cocci_menhir.ml" +# 10572 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10589,9 +10593,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) -# 10595 "parser_cocci_menhir.ml" +# 10599 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let _startpos = _startpos_p00_ in let _endpos = _endpos_m_ in @@ -10600,28 +10604,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 712 "parser_cocci_menhir.mly" +# 715 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) ) -# 10606 "parser_cocci_menhir.ml" +# 10610 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 10612 "parser_cocci_menhir.ml" +# 10616 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 10619 "parser_cocci_menhir.ml" +# 10623 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 10625 "parser_cocci_menhir.ml" +# 10629 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10656,14 +10660,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 10662 "parser_cocci_menhir.ml" +# 10666 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 10667 "parser_cocci_menhir.ml" +# 10671 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -10674,15 +10678,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 635 "parser_cocci_menhir.mly" +# 638 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) -# 10680 "parser_cocci_menhir.ml" +# 10684 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 10686 "parser_cocci_menhir.ml" +# 10690 "parser_cocci_menhir.ml" in let cv = @@ -10690,13 +10694,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 10694 "parser_cocci_menhir.ml" +# 10698 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 10700 "parser_cocci_menhir.ml" +# 10704 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10731,14 +10735,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 10737 "parser_cocci_menhir.ml" +# 10741 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 10742 "parser_cocci_menhir.ml" +# 10746 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -10749,15 +10753,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 637 "parser_cocci_menhir.mly" +# 640 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) -# 10755 "parser_cocci_menhir.ml" +# 10759 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 10761 "parser_cocci_menhir.ml" +# 10765 "parser_cocci_menhir.ml" in let cv = @@ -10765,13 +10769,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 10769 "parser_cocci_menhir.ml" +# 10773 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 10775 "parser_cocci_menhir.ml" +# 10779 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10811,19 +10815,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 10817 "parser_cocci_menhir.ml" +# 10821 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 10822 "parser_cocci_menhir.ml" +# 10826 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 10827 "parser_cocci_menhir.ml" +# 10831 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -10836,17 +10840,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 639 "parser_cocci_menhir.mly" +# 642 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) ) -# 10844 "parser_cocci_menhir.ml" +# 10848 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 10850 "parser_cocci_menhir.ml" +# 10854 "parser_cocci_menhir.ml" in let cv = @@ -10854,13 +10858,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 10858 "parser_cocci_menhir.ml" +# 10862 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 10864 "parser_cocci_menhir.ml" +# 10868 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10895,14 +10899,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 10901 "parser_cocci_menhir.ml" +# 10905 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 10906 "parser_cocci_menhir.ml" +# 10910 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -10913,15 +10917,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 643 "parser_cocci_menhir.mly" +# 646 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) -# 10919 "parser_cocci_menhir.ml" +# 10923 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 10925 "parser_cocci_menhir.ml" +# 10929 "parser_cocci_menhir.ml" in let cv = @@ -10929,13 +10933,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 10933 "parser_cocci_menhir.ml" +# 10937 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 10939 "parser_cocci_menhir.ml" +# 10943 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10970,14 +10974,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 132 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Parse_aux.info) -# 10976 "parser_cocci_menhir.ml" +# 10980 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 10981 "parser_cocci_menhir.ml" +# 10985 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -10988,16 +10992,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 645 "parser_cocci_menhir.mly" +# 648 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 10995 "parser_cocci_menhir.ml" +# 10999 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 11001 "parser_cocci_menhir.ml" +# 11005 "parser_cocci_menhir.ml" in let cv = @@ -11005,13 +11009,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 11009 "parser_cocci_menhir.ml" +# 11013 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 11015 "parser_cocci_menhir.ml" +# 11019 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11055,19 +11059,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) -# 11061 "parser_cocci_menhir.ml" +# 11065 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 112 "parser_cocci_menhir.mly" +# 114 "parser_cocci_menhir.mly" (string) -# 11066 "parser_cocci_menhir.ml" +# 11070 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let r1 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 11071 "parser_cocci_menhir.ml" +# 11075 "parser_cocci_menhir.ml" ) = Obj.magic r1 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -11080,20 +11084,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 648 "parser_cocci_menhir.mly" +# 651 "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*))) ) -# 11091 "parser_cocci_menhir.ml" +# 11095 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 11097 "parser_cocci_menhir.ml" +# 11101 "parser_cocci_menhir.ml" in let cv = @@ -11101,13 +11105,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 11105 "parser_cocci_menhir.ml" +# 11109 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 11111 "parser_cocci_menhir.ml" +# 11115 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11142,14 +11146,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 11148 "parser_cocci_menhir.ml" +# 11152 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 11153 "parser_cocci_menhir.ml" +# 11157 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -11160,15 +11164,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty1 = ty10 in -# 655 "parser_cocci_menhir.mly" +# 658 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) ) -# 11166 "parser_cocci_menhir.ml" +# 11170 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 11172 "parser_cocci_menhir.ml" +# 11176 "parser_cocci_menhir.ml" in let cv = @@ -11176,13 +11180,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 11180 "parser_cocci_menhir.ml" +# 11184 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 11186 "parser_cocci_menhir.ml" +# 11190 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11222,19 +11226,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 11228 "parser_cocci_menhir.ml" +# 11232 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 11233 "parser_cocci_menhir.ml" +# 11237 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 11238 "parser_cocci_menhir.ml" +# 11242 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -11247,17 +11251,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 657 "parser_cocci_menhir.mly" +# 660 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) ) -# 11255 "parser_cocci_menhir.ml" +# 11259 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 11261 "parser_cocci_menhir.ml" +# 11265 "parser_cocci_menhir.ml" in let cv = @@ -11265,13 +11269,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 11269 "parser_cocci_menhir.ml" +# 11273 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 11275 "parser_cocci_menhir.ml" +# 11279 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11311,19 +11315,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 11317 "parser_cocci_menhir.ml" +# 11321 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 11322 "parser_cocci_menhir.ml" +# 11326 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 11327 "parser_cocci_menhir.ml" +# 11331 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -11336,18 +11340,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 661 "parser_cocci_menhir.mly" +# 664 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) -# 11345 "parser_cocci_menhir.ml" +# 11349 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 11351 "parser_cocci_menhir.ml" +# 11355 "parser_cocci_menhir.ml" in let cv = @@ -11355,13 +11359,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 11359 "parser_cocci_menhir.ml" +# 11363 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 11365 "parser_cocci_menhir.ml" +# 11369 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11406,24 +11410,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty300 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 11412 "parser_cocci_menhir.ml" +# 11416 "parser_cocci_menhir.ml" ) = Obj.magic ty300 in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 11417 "parser_cocci_menhir.ml" +# 11421 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 11422 "parser_cocci_menhir.ml" +# 11426 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 11427 "parser_cocci_menhir.ml" +# 11431 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -11438,19 +11442,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 666 "parser_cocci_menhir.mly" +# 669 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongIntType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2; P.clt2mcode "int" ty3])) ) -# 11448 "parser_cocci_menhir.ml" +# 11452 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 11454 "parser_cocci_menhir.ml" +# 11458 "parser_cocci_menhir.ml" in let cv = @@ -11458,13 +11462,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 11462 "parser_cocci_menhir.ml" +# 11466 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 11468 "parser_cocci_menhir.ml" +# 11472 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11499,14 +11503,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 11505 "parser_cocci_menhir.ml" +# 11509 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 11510 "parser_cocci_menhir.ml" +# 11514 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -11517,15 +11521,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 635 "parser_cocci_menhir.mly" +# 638 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) -# 11523 "parser_cocci_menhir.ml" +# 11527 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 11529 "parser_cocci_menhir.ml" +# 11533 "parser_cocci_menhir.ml" in let cv = @@ -11533,13 +11537,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 11537 "parser_cocci_menhir.ml" +# 11541 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 11543 "parser_cocci_menhir.ml" +# 11547 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11574,14 +11578,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 11580 "parser_cocci_menhir.ml" +# 11584 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 11585 "parser_cocci_menhir.ml" +# 11589 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -11592,15 +11596,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 637 "parser_cocci_menhir.mly" +# 640 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) -# 11598 "parser_cocci_menhir.ml" +# 11602 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 11604 "parser_cocci_menhir.ml" +# 11608 "parser_cocci_menhir.ml" in let cv = @@ -11608,13 +11612,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 11612 "parser_cocci_menhir.ml" +# 11616 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 11618 "parser_cocci_menhir.ml" +# 11622 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11654,19 +11658,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 11660 "parser_cocci_menhir.ml" +# 11664 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 11665 "parser_cocci_menhir.ml" +# 11669 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 11670 "parser_cocci_menhir.ml" +# 11674 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -11679,17 +11683,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 639 "parser_cocci_menhir.mly" +# 642 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) ) -# 11687 "parser_cocci_menhir.ml" +# 11691 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 11693 "parser_cocci_menhir.ml" +# 11697 "parser_cocci_menhir.ml" in let cv = @@ -11697,13 +11701,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 11701 "parser_cocci_menhir.ml" +# 11705 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 11707 "parser_cocci_menhir.ml" +# 11711 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11738,14 +11742,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 11744 "parser_cocci_menhir.ml" +# 11748 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 11749 "parser_cocci_menhir.ml" +# 11753 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -11756,15 +11760,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 643 "parser_cocci_menhir.mly" +# 646 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) -# 11762 "parser_cocci_menhir.ml" +# 11766 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 11768 "parser_cocci_menhir.ml" +# 11772 "parser_cocci_menhir.ml" in let cv = @@ -11772,13 +11776,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 11776 "parser_cocci_menhir.ml" +# 11780 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 11782 "parser_cocci_menhir.ml" +# 11786 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11813,14 +11817,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 132 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Parse_aux.info) -# 11819 "parser_cocci_menhir.ml" +# 11823 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 11824 "parser_cocci_menhir.ml" +# 11828 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -11831,16 +11835,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 645 "parser_cocci_menhir.mly" +# 648 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 11838 "parser_cocci_menhir.ml" +# 11842 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 11844 "parser_cocci_menhir.ml" +# 11848 "parser_cocci_menhir.ml" in let cv = @@ -11848,13 +11852,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 11852 "parser_cocci_menhir.ml" +# 11856 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 11858 "parser_cocci_menhir.ml" +# 11862 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11898,19 +11902,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) -# 11904 "parser_cocci_menhir.ml" +# 11908 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 112 "parser_cocci_menhir.mly" +# 114 "parser_cocci_menhir.mly" (string) -# 11909 "parser_cocci_menhir.ml" +# 11913 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let r1 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 11914 "parser_cocci_menhir.ml" +# 11918 "parser_cocci_menhir.ml" ) = Obj.magic r1 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -11923,20 +11927,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 648 "parser_cocci_menhir.mly" +# 651 "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*))) ) -# 11934 "parser_cocci_menhir.ml" +# 11938 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 11940 "parser_cocci_menhir.ml" +# 11944 "parser_cocci_menhir.ml" in let cv = @@ -11944,13 +11948,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 11948 "parser_cocci_menhir.ml" +# 11952 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 11954 "parser_cocci_menhir.ml" +# 11958 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11985,14 +11989,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 11991 "parser_cocci_menhir.ml" +# 11995 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 11996 "parser_cocci_menhir.ml" +# 12000 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -12003,15 +12007,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty1 = ty10 in -# 655 "parser_cocci_menhir.mly" +# 658 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) ) -# 12009 "parser_cocci_menhir.ml" +# 12013 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 12015 "parser_cocci_menhir.ml" +# 12019 "parser_cocci_menhir.ml" in let cv = @@ -12019,13 +12023,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 12023 "parser_cocci_menhir.ml" +# 12027 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 12029 "parser_cocci_menhir.ml" +# 12033 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12065,19 +12069,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 12071 "parser_cocci_menhir.ml" +# 12075 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 12076 "parser_cocci_menhir.ml" +# 12080 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 12081 "parser_cocci_menhir.ml" +# 12085 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -12090,17 +12094,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 657 "parser_cocci_menhir.mly" +# 660 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) ) -# 12098 "parser_cocci_menhir.ml" +# 12102 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 12104 "parser_cocci_menhir.ml" +# 12108 "parser_cocci_menhir.ml" in let cv = @@ -12108,13 +12112,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 12112 "parser_cocci_menhir.ml" +# 12116 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 12118 "parser_cocci_menhir.ml" +# 12122 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12154,19 +12158,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 12160 "parser_cocci_menhir.ml" +# 12164 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 12165 "parser_cocci_menhir.ml" +# 12169 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 12170 "parser_cocci_menhir.ml" +# 12174 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -12179,18 +12183,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 661 "parser_cocci_menhir.mly" +# 664 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) -# 12188 "parser_cocci_menhir.ml" +# 12192 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 12194 "parser_cocci_menhir.ml" +# 12198 "parser_cocci_menhir.ml" in let cv = @@ -12198,13 +12202,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 12202 "parser_cocci_menhir.ml" +# 12206 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 12208 "parser_cocci_menhir.ml" +# 12212 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12249,24 +12253,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty300 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 12255 "parser_cocci_menhir.ml" +# 12259 "parser_cocci_menhir.ml" ) = Obj.magic ty300 in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 12260 "parser_cocci_menhir.ml" +# 12264 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 12265 "parser_cocci_menhir.ml" +# 12269 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 12270 "parser_cocci_menhir.ml" +# 12274 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -12281,19 +12285,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 666 "parser_cocci_menhir.mly" +# 669 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongIntType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2; P.clt2mcode "int" ty3])) ) -# 12291 "parser_cocci_menhir.ml" +# 12295 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 12297 "parser_cocci_menhir.ml" +# 12301 "parser_cocci_menhir.ml" in let cv = @@ -12301,13 +12305,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 12305 "parser_cocci_menhir.ml" +# 12309 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 12311 "parser_cocci_menhir.ml" +# 12315 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12337,9 +12341,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 12343 "parser_cocci_menhir.ml" +# 12347 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -12349,15 +12353,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 635 "parser_cocci_menhir.mly" +# 638 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) -# 12355 "parser_cocci_menhir.ml" +# 12359 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 12361 "parser_cocci_menhir.ml" +# 12365 "parser_cocci_menhir.ml" in let cv = @@ -12365,13 +12369,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 12369 "parser_cocci_menhir.ml" +# 12373 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 12375 "parser_cocci_menhir.ml" +# 12379 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12401,9 +12405,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 12407 "parser_cocci_menhir.ml" +# 12411 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -12413,15 +12417,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 637 "parser_cocci_menhir.mly" +# 640 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) -# 12419 "parser_cocci_menhir.ml" +# 12423 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 12425 "parser_cocci_menhir.ml" +# 12429 "parser_cocci_menhir.ml" in let cv = @@ -12429,13 +12433,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 12433 "parser_cocci_menhir.ml" +# 12437 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 12439 "parser_cocci_menhir.ml" +# 12443 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12470,14 +12474,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 12476 "parser_cocci_menhir.ml" +# 12480 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 12481 "parser_cocci_menhir.ml" +# 12485 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -12489,17 +12493,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 639 "parser_cocci_menhir.mly" +# 642 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) ) -# 12497 "parser_cocci_menhir.ml" +# 12501 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 12503 "parser_cocci_menhir.ml" +# 12507 "parser_cocci_menhir.ml" in let cv = @@ -12507,13 +12511,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 12511 "parser_cocci_menhir.ml" +# 12515 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 12517 "parser_cocci_menhir.ml" +# 12521 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12543,9 +12547,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 12549 "parser_cocci_menhir.ml" +# 12553 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -12555,15 +12559,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 643 "parser_cocci_menhir.mly" +# 646 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) -# 12561 "parser_cocci_menhir.ml" +# 12565 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 12567 "parser_cocci_menhir.ml" +# 12571 "parser_cocci_menhir.ml" in let cv = @@ -12571,13 +12575,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 12575 "parser_cocci_menhir.ml" +# 12579 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 12581 "parser_cocci_menhir.ml" +# 12585 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12607,9 +12611,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 132 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Parse_aux.info) -# 12613 "parser_cocci_menhir.ml" +# 12617 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -12619,16 +12623,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 645 "parser_cocci_menhir.mly" +# 648 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 12626 "parser_cocci_menhir.ml" +# 12630 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 12632 "parser_cocci_menhir.ml" +# 12636 "parser_cocci_menhir.ml" in let cv = @@ -12636,13 +12640,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 12640 "parser_cocci_menhir.ml" +# 12644 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 12646 "parser_cocci_menhir.ml" +# 12650 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12681,14 +12685,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) -# 12687 "parser_cocci_menhir.ml" +# 12691 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 112 "parser_cocci_menhir.mly" +# 114 "parser_cocci_menhir.mly" (string) -# 12692 "parser_cocci_menhir.ml" +# 12696 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -12700,20 +12704,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 648 "parser_cocci_menhir.mly" +# 651 "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*))) ) -# 12711 "parser_cocci_menhir.ml" +# 12715 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 12717 "parser_cocci_menhir.ml" +# 12721 "parser_cocci_menhir.ml" in let cv = @@ -12721,13 +12725,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 12725 "parser_cocci_menhir.ml" +# 12729 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 12731 "parser_cocci_menhir.ml" +# 12735 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12757,9 +12761,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 12763 "parser_cocci_menhir.ml" +# 12767 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -12769,15 +12773,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty1 = ty10 in -# 655 "parser_cocci_menhir.mly" +# 658 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) ) -# 12775 "parser_cocci_menhir.ml" +# 12779 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 12781 "parser_cocci_menhir.ml" +# 12785 "parser_cocci_menhir.ml" in let cv = @@ -12785,13 +12789,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 12789 "parser_cocci_menhir.ml" +# 12793 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 12795 "parser_cocci_menhir.ml" +# 12799 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12826,14 +12830,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 12832 "parser_cocci_menhir.ml" +# 12836 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 12837 "parser_cocci_menhir.ml" +# 12841 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -12845,17 +12849,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 657 "parser_cocci_menhir.mly" +# 660 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) ) -# 12853 "parser_cocci_menhir.ml" +# 12857 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 12859 "parser_cocci_menhir.ml" +# 12863 "parser_cocci_menhir.ml" in let cv = @@ -12863,13 +12867,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 12867 "parser_cocci_menhir.ml" +# 12871 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 12873 "parser_cocci_menhir.ml" +# 12877 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12904,14 +12908,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 12910 "parser_cocci_menhir.ml" +# 12914 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 12915 "parser_cocci_menhir.ml" +# 12919 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -12923,18 +12927,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 661 "parser_cocci_menhir.mly" +# 664 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) -# 12932 "parser_cocci_menhir.ml" +# 12936 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 12938 "parser_cocci_menhir.ml" +# 12942 "parser_cocci_menhir.ml" in let cv = @@ -12942,13 +12946,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 12946 "parser_cocci_menhir.ml" +# 12950 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 12952 "parser_cocci_menhir.ml" +# 12956 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12988,19 +12992,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty300 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 12994 "parser_cocci_menhir.ml" +# 12998 "parser_cocci_menhir.ml" ) = Obj.magic ty300 in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 12999 "parser_cocci_menhir.ml" +# 13003 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 13004 "parser_cocci_menhir.ml" +# 13008 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -13014,19 +13018,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 666 "parser_cocci_menhir.mly" +# 669 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongIntType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2; P.clt2mcode "int" ty3])) ) -# 13024 "parser_cocci_menhir.ml" +# 13028 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 13030 "parser_cocci_menhir.ml" +# 13034 "parser_cocci_menhir.ml" in let cv = @@ -13034,13 +13038,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 13038 "parser_cocci_menhir.ml" +# 13042 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 13044 "parser_cocci_menhir.ml" +# 13048 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13070,9 +13074,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 116 "parser_cocci_menhir.mly" +# 118 "parser_cocci_menhir.mly" (Data.clt) -# 13076 "parser_cocci_menhir.ml" +# 13080 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -13082,15 +13086,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 675 "parser_cocci_menhir.mly" +# 678 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) ) -# 13088 "parser_cocci_menhir.ml" +# 13092 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 13094 "parser_cocci_menhir.ml" +# 13098 "parser_cocci_menhir.ml" in let cv = @@ -13098,13 +13102,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 13102 "parser_cocci_menhir.ml" +# 13106 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 13108 "parser_cocci_menhir.ml" +# 13112 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13139,14 +13143,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 13145 "parser_cocci_menhir.ml" +# 13149 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 13150 "parser_cocci_menhir.ml" +# 13154 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -13158,18 +13162,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 677 "parser_cocci_menhir.mly" +# 680 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongDoubleType, [P.clt2mcode "long" ty1;P.clt2mcode "double" ty2])) ) -# 13167 "parser_cocci_menhir.ml" +# 13171 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 13173 "parser_cocci_menhir.ml" +# 13177 "parser_cocci_menhir.ml" in let cv = @@ -13177,13 +13181,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 13181 "parser_cocci_menhir.ml" +# 13185 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 13187 "parser_cocci_menhir.ml" +# 13191 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13213,9 +13217,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 13219 "parser_cocci_menhir.ml" +# 13223 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -13225,15 +13229,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 682 "parser_cocci_menhir.mly" +# 685 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) ) -# 13231 "parser_cocci_menhir.ml" +# 13235 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 13237 "parser_cocci_menhir.ml" +# 13241 "parser_cocci_menhir.ml" in let cv = @@ -13241,13 +13245,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 13245 "parser_cocci_menhir.ml" +# 13249 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 13251 "parser_cocci_menhir.ml" +# 13255 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13277,9 +13281,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 13283 "parser_cocci_menhir.ml" +# 13287 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -13289,15 +13293,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 684 "parser_cocci_menhir.mly" +# 687 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) ) -# 13295 "parser_cocci_menhir.ml" +# 13299 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 13301 "parser_cocci_menhir.ml" +# 13305 "parser_cocci_menhir.ml" in let cv = @@ -13305,13 +13309,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 13309 "parser_cocci_menhir.ml" +# 13313 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 13315 "parser_cocci_menhir.ml" +# 13319 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13341,9 +13345,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 115 "parser_cocci_menhir.mly" +# 117 "parser_cocci_menhir.mly" (Data.clt) -# 13347 "parser_cocci_menhir.ml" +# 13351 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -13353,15 +13357,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 686 "parser_cocci_menhir.mly" +# 689 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.SizeType,[P.clt2mcode "size_t" ty])) ) -# 13359 "parser_cocci_menhir.ml" +# 13363 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 13365 "parser_cocci_menhir.ml" +# 13369 "parser_cocci_menhir.ml" in let cv = @@ -13369,13 +13373,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 13373 "parser_cocci_menhir.ml" +# 13377 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 13379 "parser_cocci_menhir.ml" +# 13383 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13405,9 +13409,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 115 "parser_cocci_menhir.mly" +# 117 "parser_cocci_menhir.mly" (Data.clt) -# 13411 "parser_cocci_menhir.ml" +# 13415 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -13417,15 +13421,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 688 "parser_cocci_menhir.mly" +# 691 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.SSizeType,[P.clt2mcode "ssize_t" ty])) ) -# 13423 "parser_cocci_menhir.ml" +# 13427 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 13429 "parser_cocci_menhir.ml" +# 13433 "parser_cocci_menhir.ml" in let cv = @@ -13433,13 +13437,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 13437 "parser_cocci_menhir.ml" +# 13441 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 13443 "parser_cocci_menhir.ml" +# 13447 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13469,9 +13473,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 115 "parser_cocci_menhir.mly" +# 117 "parser_cocci_menhir.mly" (Data.clt) -# 13475 "parser_cocci_menhir.ml" +# 13479 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -13481,15 +13485,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 690 "parser_cocci_menhir.mly" +# 693 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.PtrDiffType,[P.clt2mcode "ptrdiff_t" ty])) ) -# 13487 "parser_cocci_menhir.ml" +# 13491 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 13493 "parser_cocci_menhir.ml" +# 13497 "parser_cocci_menhir.ml" in let cv = @@ -13497,13 +13501,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 13501 "parser_cocci_menhir.ml" +# 13505 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 13507 "parser_cocci_menhir.ml" +# 13511 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13539,9 +13543,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 : ( -# 116 "parser_cocci_menhir.mly" +# 118 "parser_cocci_menhir.mly" (Data.clt) -# 13545 "parser_cocci_menhir.ml" +# 13549 "parser_cocci_menhir.ml" ) = Obj.magic s00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -13553,15 +13557,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let i = i0 in let s = s0 in -# 692 "parser_cocci_menhir.mly" +# 695 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, Some i)) ) -# 13559 "parser_cocci_menhir.ml" +# 13563 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 13565 "parser_cocci_menhir.ml" +# 13569 "parser_cocci_menhir.ml" in let cv = @@ -13569,13 +13573,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 13573 "parser_cocci_menhir.ml" +# 13577 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 13579 "parser_cocci_menhir.ml" +# 13583 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13620,20 +13624,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 13626 "parser_cocci_menhir.ml" +# 13630 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in let l00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 13632 "parser_cocci_menhir.ml" +# 13636 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let s00 : ( -# 116 "parser_cocci_menhir.mly" +# 118 "parser_cocci_menhir.mly" (Data.clt) -# 13637 "parser_cocci_menhir.ml" +# 13641 "parser_cocci_menhir.ml" ) = Obj.magic s00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -13652,22 +13656,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 13656 "parser_cocci_menhir.ml" +# 13660 "parser_cocci_menhir.ml" in -# 694 "parser_cocci_menhir.mly" +# 697 "parser_cocci_menhir.mly" ( (if i = None && !Data.in_iso then failwith "enums must be named in the iso file"); Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)), P.clt2mcode "{" l, ids, P.clt2mcode "}" r)) ) -# 13665 "parser_cocci_menhir.ml" +# 13669 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 13671 "parser_cocci_menhir.ml" +# 13675 "parser_cocci_menhir.ml" in let cv = @@ -13675,13 +13679,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 13679 "parser_cocci_menhir.ml" +# 13683 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 13685 "parser_cocci_menhir.ml" +# 13689 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13731,21 +13735,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 13737 "parser_cocci_menhir.ml" +# 13741 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in let l00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 13743 "parser_cocci_menhir.ml" +# 13747 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let x000 : 'tv_ident = Obj.magic x000 in let s00 : ( -# 116 "parser_cocci_menhir.mly" +# 118 "parser_cocci_menhir.mly" (Data.clt) -# 13749 "parser_cocci_menhir.ml" +# 13753 "parser_cocci_menhir.ml" ) = Obj.magic s00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -13767,22 +13771,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 13771 "parser_cocci_menhir.ml" +# 13775 "parser_cocci_menhir.ml" in -# 694 "parser_cocci_menhir.mly" +# 697 "parser_cocci_menhir.mly" ( (if i = None && !Data.in_iso then failwith "enums must be named in the iso file"); Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)), P.clt2mcode "{" l, ids, P.clt2mcode "}" r)) ) -# 13780 "parser_cocci_menhir.ml" +# 13784 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 13786 "parser_cocci_menhir.ml" +# 13790 "parser_cocci_menhir.ml" in let cv = @@ -13790,13 +13794,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 13794 "parser_cocci_menhir.ml" +# 13798 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 13800 "parser_cocci_menhir.ml" +# 13804 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13842,15 +13846,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let i = i0 in let s = s0 in -# 699 "parser_cocci_menhir.mly" +# 702 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) ) -# 13848 "parser_cocci_menhir.ml" +# 13852 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 13854 "parser_cocci_menhir.ml" +# 13858 "parser_cocci_menhir.ml" in let cv = @@ -13858,13 +13862,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 13862 "parser_cocci_menhir.ml" +# 13866 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 13868 "parser_cocci_menhir.ml" +# 13872 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13909,15 +13913,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 13915 "parser_cocci_menhir.ml" +# 13919 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 13921 "parser_cocci_menhir.ml" +# 13925 "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 @@ -13937,23 +13941,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 13941 "parser_cocci_menhir.ml" +# 13945 "parser_cocci_menhir.ml" in -# 702 "parser_cocci_menhir.mly" +# 705 "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)) ) -# 13951 "parser_cocci_menhir.ml" +# 13955 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 13957 "parser_cocci_menhir.ml" +# 13961 "parser_cocci_menhir.ml" in let cv = @@ -13961,13 +13965,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 13965 "parser_cocci_menhir.ml" +# 13969 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 13971 "parser_cocci_menhir.ml" +# 13975 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14017,15 +14021,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 14023 "parser_cocci_menhir.ml" +# 14027 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 14029 "parser_cocci_menhir.ml" +# 14033 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let x000 : 'tv_type_ident = Obj.magic x000 in let s00 : 'tv_struct_or_union = Obj.magic s00 in @@ -14049,23 +14053,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 14053 "parser_cocci_menhir.ml" +# 14057 "parser_cocci_menhir.ml" in -# 702 "parser_cocci_menhir.mly" +# 705 "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)) ) -# 14063 "parser_cocci_menhir.ml" +# 14067 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 14069 "parser_cocci_menhir.ml" +# 14073 "parser_cocci_menhir.ml" in let cv = @@ -14073,13 +14077,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 14077 "parser_cocci_menhir.ml" +# 14081 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 14083 "parser_cocci_menhir.ml" +# 14087 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14124,20 +14128,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 14130 "parser_cocci_menhir.ml" +# 14134 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 14136 "parser_cocci_menhir.ml" +# 14140 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let s00 : ( -# 132 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Parse_aux.info) -# 14141 "parser_cocci_menhir.ml" +# 14145 "parser_cocci_menhir.ml" ) = Obj.magic s00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -14153,17 +14157,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let l = l0 in let s = s0 in -# 708 "parser_cocci_menhir.mly" +# 711 "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)) ) -# 14161 "parser_cocci_menhir.ml" +# 14165 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 14167 "parser_cocci_menhir.ml" +# 14171 "parser_cocci_menhir.ml" in let cv = @@ -14171,13 +14175,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 14175 "parser_cocci_menhir.ml" +# 14179 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 14181 "parser_cocci_menhir.ml" +# 14185 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14207,9 +14211,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) -# 14213 "parser_cocci_menhir.ml" +# 14217 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -14219,15 +14223,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 712 "parser_cocci_menhir.mly" +# 715 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) ) -# 14225 "parser_cocci_menhir.ml" +# 14229 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 14231 "parser_cocci_menhir.ml" +# 14235 "parser_cocci_menhir.ml" in let cv = @@ -14235,13 +14239,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 14239 "parser_cocci_menhir.ml" +# 14243 "parser_cocci_menhir.ml" in -# 725 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 14245 "parser_cocci_menhir.ml" +# 14249 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14260,16 +14264,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let r : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 14266 "parser_cocci_menhir.ml" +# 14270 "parser_cocci_menhir.ml" ) = Obj.magic r in let _startpos = _startpos_r_ in let _endpos = _endpos_r_ in let _v : 'tv_ctype = -# 727 "parser_cocci_menhir.mly" +# 730 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,None)) ) -# 14273 "parser_cocci_menhir.ml" +# 14277 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14288,16 +14292,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let r : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 14294 "parser_cocci_menhir.ml" +# 14298 "parser_cocci_menhir.ml" ) = Obj.magic r in let _startpos = _startpos_r_ in let _endpos = _endpos_r_ in let _v : 'tv_ctype = -# 729 "parser_cocci_menhir.mly" +# 732 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,None)) ) -# 14301 "parser_cocci_menhir.ml" +# 14305 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14326,24 +14330,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 14332 "parser_cocci_menhir.ml" +# 14336 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_midzero_list_ctype_ctype_ = Obj.magic t in let lp : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 14338 "parser_cocci_menhir.ml" +# 14342 "parser_cocci_menhir.ml" ) = Obj.magic lp in let _startpos = _startpos_lp_ in let _endpos = _endpos_rp_ in let _v : 'tv_ctype = -# 731 "parser_cocci_menhir.mly" +# 734 "parser_cocci_menhir.mly" ( let (mids,code) = t in Ast0.wrap (Ast0.DisjType(P.clt2mcode "(" lp,code,mids, P.clt2mcode ")" rp)) ) -# 14347 "parser_cocci_menhir.ml" +# 14351 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14371,9 +14375,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_d_ident = -# 1315 "parser_cocci_menhir.mly" +# 1339 "parser_cocci_menhir.mly" ( (_1, function t -> P.arrayify t _2) ) -# 14377 "parser_cocci_menhir.ml" +# 14381 "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.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_basic_expr_eexpr_nest_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_dargexpr = +# 1476 "parser_cocci_menhir.mly" + ( _1 ) +# 14405 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14407,9 +14435,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_t_ in let _endpos = _endpos_a_ in let _v : 'tv_decl = -# 1067 "parser_cocci_menhir.mly" +# 1070 "parser_cocci_menhir.mly" ( let t = P.arrayify t a in Ast0.wrap(Ast0.Param(t, Some i)) ) -# 14413 "parser_cocci_menhir.ml" +# 14441 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14431,9 +14459,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_t_ in let _endpos = _endpos_t_ in let _v : 'tv_decl = -# 1068 "parser_cocci_menhir.mly" +# 1071 "parser_cocci_menhir.mly" ( (*verify in FunDecl*) Ast0.wrap(Ast0.Param(t, None)) ) -# 14437 "parser_cocci_menhir.ml" +# 14465 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14487,44 +14515,44 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp1 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 14493 "parser_cocci_menhir.ml" +# 14521 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in let lp1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 14499 "parser_cocci_menhir.ml" +# 14527 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in let rp : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 14504 "parser_cocci_menhir.ml" +# 14532 "parser_cocci_menhir.ml" ) = Obj.magic rp in let i : 'tv_disj_ident = Obj.magic i in let s : ( -# 168 "parser_cocci_menhir.mly" +# 171 "parser_cocci_menhir.mly" (Data.clt) -# 14510 "parser_cocci_menhir.ml" +# 14538 "parser_cocci_menhir.ml" ) = Obj.magic s in let lp : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 14515 "parser_cocci_menhir.ml" +# 14543 "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 = -# 1071 "parser_cocci_menhir.mly" +# 1074 "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)) ) -# 14528 "parser_cocci_menhir.ml" +# 14556 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14543,17 +14571,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 132 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Parse_aux.info) -# 14549 "parser_cocci_menhir.ml" +# 14577 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl = -# 1078 "parser_cocci_menhir.mly" +# 1081 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = _1 in Ast0.wrap(Ast0.MetaParam(P.clt2mcode nm clt,pure)) ) -# 14557 "parser_cocci_menhir.ml" +# 14585 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14572,16 +14600,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 133 "parser_cocci_menhir.mly" +# 135 "parser_cocci_menhir.mly" (Parse_aux.info) -# 14578 "parser_cocci_menhir.ml" +# 14606 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl = -# 1080 "parser_cocci_menhir.mly" +# 1083 "parser_cocci_menhir.mly" ( tmeta_to_param _1 ) -# 14585 "parser_cocci_menhir.ml" +# 14613 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14600,16 +14628,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) -# 14606 "parser_cocci_menhir.ml" +# 14634 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_ident = -# 2009 "parser_cocci_menhir.mly" +# 2045 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) ) -# 14613 "parser_cocci_menhir.ml" +# 14641 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14628,17 +14656,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 130 "parser_cocci_menhir.mly" +# 132 "parser_cocci_menhir.mly" (Parse_aux.idinfo) -# 14634 "parser_cocci_menhir.ml" +# 14662 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_ident = -# 2011 "parser_cocci_menhir.mly" +# 2047 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,Ast.NoVal,pure)) ) -# 14642 "parser_cocci_menhir.ml" +# 14670 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14660,13 +14688,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_list_decl_ = -# 2033 "parser_cocci_menhir.mly" +# 2069 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.DOTS (_1 (fun _ d -> Ast0.wrap(Ast0.Pdots(P.clt2mcode "..." d))) (fun c -> Ast0.PComma c))) ) -# 14670 "parser_cocci_menhir.ml" +# 14698 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14688,13 +14716,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_ = -# 2033 "parser_cocci_menhir.mly" +# 2069 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.DOTS (_1 (fun _ d -> Ast0.wrap(Ast0.Pdots(P.clt2mcode "..." d))) (fun c -> Ast0.PComma c))) ) -# 14698 "parser_cocci_menhir.ml" +# 14726 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14713,17 +14741,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 132 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Parse_aux.info) -# 14719 "parser_cocci_menhir.ml" +# 14747 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_statement = -# 1378 "parser_cocci_menhir.mly" +# 1402 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = _1 in [Ast0.wrap(Ast0.MetaStmt(P.clt2mcode nm clt,pure))] ) -# 14727 "parser_cocci_menhir.ml" +# 14755 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14745,13 +14773,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_statement = -# 1381 "parser_cocci_menhir.mly" +# 1405 "parser_cocci_menhir.mly" ( List.map (function x -> Ast0.wrap (Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),x))) _1 ) -# 14755 "parser_cocci_menhir.ml" +# 14783 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14773,9 +14801,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_statement = -# 1386 "parser_cocci_menhir.mly" +# 1410 "parser_cocci_menhir.mly" ( [_1] ) -# 14779 "parser_cocci_menhir.ml" +# 14807 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14804,20 +14832,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 14810 "parser_cocci_menhir.ml" +# 14838 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let t : 'tv_midzero_list_fun_start_fun_start_ = Obj.magic t in let _1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 14816 "parser_cocci_menhir.ml" +# 14844 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_decl_statement = -# 1395 "parser_cocci_menhir.mly" +# 1419 "parser_cocci_menhir.mly" ( let (mids,code) = t in if List.for_all (function x -> @@ -14827,7 +14855,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct else [Ast0.wrap(Ast0.Disj(P.clt2mcode "(" _1, code, mids, P.clt2mcode ")" _3))] ) -# 14831 "parser_cocci_menhir.ml" +# 14859 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14846,17 +14874,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 132 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Parse_aux.info) -# 14852 "parser_cocci_menhir.ml" +# 14880 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_statement_expr = -# 1408 "parser_cocci_menhir.mly" +# 1432 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = _1 in [Ast0.wrap(Ast0.MetaStmt(P.clt2mcode nm clt,pure))] ) -# 14860 "parser_cocci_menhir.ml" +# 14888 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14878,13 +14906,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_statement_expr = -# 1411 "parser_cocci_menhir.mly" +# 1435 "parser_cocci_menhir.mly" ( List.map (function x -> Ast0.wrap (Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),x))) _1 ) -# 14888 "parser_cocci_menhir.ml" +# 14916 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14906,9 +14934,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_statement_expr = -# 1416 "parser_cocci_menhir.mly" +# 1440 "parser_cocci_menhir.mly" ( [_1] ) -# 14912 "parser_cocci_menhir.ml" +# 14940 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14937,20 +14965,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 14943 "parser_cocci_menhir.ml" +# 14971 "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 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 14949 "parser_cocci_menhir.ml" +# 14977 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_decl_statement_expr = -# 1425 "parser_cocci_menhir.mly" +# 1449 "parser_cocci_menhir.mly" ( let (mids,code) = t in if List.for_all (function [] -> true | _ -> false) code then [] @@ -14959,7 +14987,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))] ) -# 14963 "parser_cocci_menhir.ml" +# 14991 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14983,17 +15011,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 14989 "parser_cocci_menhir.ml" +# 15017 "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 = -# 1201 "parser_cocci_menhir.mly" +# 1213 "parser_cocci_menhir.mly" ( [Ast0.wrap(Ast0.TyDecl(t,P.clt2mcode ";" pv))] ) -# 14997 "parser_cocci_menhir.ml" +# 15025 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15012,16 +15040,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 133 "parser_cocci_menhir.mly" +# 135 "parser_cocci_menhir.mly" (Parse_aux.info) -# 15018 "parser_cocci_menhir.ml" +# 15046 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_var = -# 1202 "parser_cocci_menhir.mly" +# 1214 "parser_cocci_menhir.mly" ( [P.meta_decl _1] ) -# 15025 "parser_cocci_menhir.ml" +# 15053 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15050,9 +15078,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 15056 "parser_cocci_menhir.ml" +# 15084 "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 @@ -15062,16 +15090,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 15066 "parser_cocci_menhir.ml" +# 15094 "parser_cocci_menhir.ml" in -# 1204 "parser_cocci_menhir.mly" +# 1216 "parser_cocci_menhir.mly" ( List.map (function (id,fn) -> Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv))) d ) -# 15075 "parser_cocci_menhir.ml" +# 15103 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15105,9 +15133,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 15111 "parser_cocci_menhir.ml" +# 15139 "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 @@ -15119,16 +15147,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 15123 "parser_cocci_menhir.ml" +# 15151 "parser_cocci_menhir.ml" in -# 1204 "parser_cocci_menhir.mly" +# 1216 "parser_cocci_menhir.mly" ( List.map (function (id,fn) -> Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv))) d ) -# 15132 "parser_cocci_menhir.ml" +# 15160 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15150,9 +15178,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_f_ in let _endpos = _endpos_f_ in let _v : 'tv_decl_var = -# 1208 "parser_cocci_menhir.mly" +# 1220 "parser_cocci_menhir.mly" ( [f] ) -# 15156 "parser_cocci_menhir.ml" +# 15184 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15191,15 +15219,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 15197 "parser_cocci_menhir.ml" +# 15225 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 15203 "parser_cocci_menhir.ml" +# 15231 "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 @@ -15209,14 +15237,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 15213 "parser_cocci_menhir.ml" +# 15241 "parser_cocci_menhir.ml" in -# 1210 "parser_cocci_menhir.mly" +# 1222 "parser_cocci_menhir.mly" (let (id,fn) = d in [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))]) -# 15220 "parser_cocci_menhir.ml" +# 15248 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15260,15 +15288,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 15266 "parser_cocci_menhir.ml" +# 15294 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 15272 "parser_cocci_menhir.ml" +# 15300 "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 @@ -15280,14 +15308,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 15284 "parser_cocci_menhir.ml" +# 15312 "parser_cocci_menhir.ml" in -# 1210 "parser_cocci_menhir.mly" +# 1222 "parser_cocci_menhir.mly" (let (id,fn) = d in [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))]) -# 15291 "parser_cocci_menhir.ml" +# 15319 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15316,9 +15344,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 15322 "parser_cocci_menhir.ml" +# 15350 "parser_cocci_menhir.ml" ) = Obj.magic pv in let d : 'tv_comma_list_d_ident_ = Obj.magic d in let i : 'tv_pure_ident_or_symbol = Obj.magic i in @@ -15328,25 +15356,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 15332 "parser_cocci_menhir.ml" +# 15360 "parser_cocci_menhir.ml" in let s = # 39 "standard.mly" ( None ) -# 15339 "parser_cocci_menhir.ml" +# 15367 "parser_cocci_menhir.ml" in -# 1215 "parser_cocci_menhir.mly" +# 1227 "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 ) -# 15350 "parser_cocci_menhir.ml" +# 15378 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15380,9 +15408,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 15386 "parser_cocci_menhir.ml" +# 15414 "parser_cocci_menhir.ml" ) = Obj.magic pv in let d : 'tv_comma_list_d_ident_ = Obj.magic d in let i : 'tv_pure_ident_or_symbol = Obj.magic i in @@ -15394,25 +15422,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 15398 "parser_cocci_menhir.ml" +# 15426 "parser_cocci_menhir.ml" in let s = # 39 "standard.mly" ( None ) -# 15405 "parser_cocci_menhir.ml" +# 15433 "parser_cocci_menhir.ml" in -# 1215 "parser_cocci_menhir.mly" +# 1227 "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 ) -# 15416 "parser_cocci_menhir.ml" +# 15444 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15446,9 +15474,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 15452 "parser_cocci_menhir.ml" +# 15480 "parser_cocci_menhir.ml" ) = Obj.magic pv in let d : 'tv_comma_list_d_ident_ = Obj.magic d in let i : 'tv_pure_ident_or_symbol = Obj.magic i in @@ -15459,7 +15487,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 15463 "parser_cocci_menhir.ml" +# 15491 "parser_cocci_menhir.ml" in let s = @@ -15467,18 +15495,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 15471 "parser_cocci_menhir.ml" +# 15499 "parser_cocci_menhir.ml" in -# 1215 "parser_cocci_menhir.mly" +# 1227 "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 ) -# 15482 "parser_cocci_menhir.ml" +# 15510 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15517,9 +15545,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 15523 "parser_cocci_menhir.ml" +# 15551 "parser_cocci_menhir.ml" ) = Obj.magic pv in let d : 'tv_comma_list_d_ident_ = Obj.magic d in let i : 'tv_pure_ident_or_symbol = Obj.magic i in @@ -15532,7 +15560,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 15536 "parser_cocci_menhir.ml" +# 15564 "parser_cocci_menhir.ml" in let s = @@ -15540,18 +15568,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 15544 "parser_cocci_menhir.ml" +# 15572 "parser_cocci_menhir.ml" in -# 1215 "parser_cocci_menhir.mly" +# 1227 "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 ) -# 15555 "parser_cocci_menhir.ml" +# 15583 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15590,15 +15618,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 15596 "parser_cocci_menhir.ml" +# 15624 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 15602 "parser_cocci_menhir.ml" +# 15630 "parser_cocci_menhir.ml" ) = Obj.magic q in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident_or_symbol = Obj.magic i in @@ -15608,24 +15636,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 15612 "parser_cocci_menhir.ml" +# 15640 "parser_cocci_menhir.ml" in let s = # 39 "standard.mly" ( None ) -# 15619 "parser_cocci_menhir.ml" +# 15647 "parser_cocci_menhir.ml" in -# 1223 "parser_cocci_menhir.mly" +# 1235 "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))] ) -# 15629 "parser_cocci_menhir.ml" +# 15657 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15669,15 +15697,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 15675 "parser_cocci_menhir.ml" +# 15703 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 15681 "parser_cocci_menhir.ml" +# 15709 "parser_cocci_menhir.ml" ) = Obj.magic q in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident_or_symbol = Obj.magic i in @@ -15689,24 +15717,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 15693 "parser_cocci_menhir.ml" +# 15721 "parser_cocci_menhir.ml" in let s = # 39 "standard.mly" ( None ) -# 15700 "parser_cocci_menhir.ml" +# 15728 "parser_cocci_menhir.ml" in -# 1223 "parser_cocci_menhir.mly" +# 1235 "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))] ) -# 15710 "parser_cocci_menhir.ml" +# 15738 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15750,15 +15778,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 15756 "parser_cocci_menhir.ml" +# 15784 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 15762 "parser_cocci_menhir.ml" +# 15790 "parser_cocci_menhir.ml" ) = Obj.magic q in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident_or_symbol = Obj.magic i in @@ -15769,7 +15797,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 15773 "parser_cocci_menhir.ml" +# 15801 "parser_cocci_menhir.ml" in let s = @@ -15777,17 +15805,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 15781 "parser_cocci_menhir.ml" +# 15809 "parser_cocci_menhir.ml" in -# 1223 "parser_cocci_menhir.mly" +# 1235 "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))] ) -# 15791 "parser_cocci_menhir.ml" +# 15819 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15836,15 +15864,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 15842 "parser_cocci_menhir.ml" +# 15870 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 15848 "parser_cocci_menhir.ml" +# 15876 "parser_cocci_menhir.ml" ) = Obj.magic q in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident_or_symbol = Obj.magic i in @@ -15857,7 +15885,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 15861 "parser_cocci_menhir.ml" +# 15889 "parser_cocci_menhir.ml" in let s = @@ -15865,17 +15893,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 15869 "parser_cocci_menhir.ml" +# 15897 "parser_cocci_menhir.ml" in -# 1223 "parser_cocci_menhir.mly" +# 1235 "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))] ) -# 15879 "parser_cocci_menhir.ml" +# 15907 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15934,36 +15962,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 15940 "parser_cocci_menhir.ml" +# 15968 "parser_cocci_menhir.ml" ) = Obj.magic pv in let rp2 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 15945 "parser_cocci_menhir.ml" +# 15973 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 15951 "parser_cocci_menhir.ml" +# 15979 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 15956 "parser_cocci_menhir.ml" +# 15984 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 168 "parser_cocci_menhir.mly" +# 171 "parser_cocci_menhir.mly" (Data.clt) -# 15962 "parser_cocci_menhir.ml" +# 15990 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 15967 "parser_cocci_menhir.ml" +# 15995 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in let t : 'tv_ctype = Obj.magic t in let _startpos = _startpos_t_ in @@ -15972,11 +16000,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 15976 "parser_cocci_menhir.ml" +# 16004 "parser_cocci_menhir.ml" in -# 1233 "parser_cocci_menhir.mly" +# 1245 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -15984,7 +16012,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))] ) -# 15988 "parser_cocci_menhir.ml" +# 16016 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16048,36 +16076,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 16054 "parser_cocci_menhir.ml" +# 16082 "parser_cocci_menhir.ml" ) = Obj.magic pv in let rp2 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 16059 "parser_cocci_menhir.ml" +# 16087 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 16065 "parser_cocci_menhir.ml" +# 16093 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 16070 "parser_cocci_menhir.ml" +# 16098 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 168 "parser_cocci_menhir.mly" +# 171 "parser_cocci_menhir.mly" (Data.clt) -# 16076 "parser_cocci_menhir.ml" +# 16104 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 16081 "parser_cocci_menhir.ml" +# 16109 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in let t : 'tv_ctype = Obj.magic t in let x0 : 'tv_storage = Obj.magic x0 in @@ -16088,11 +16116,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 16092 "parser_cocci_menhir.ml" +# 16120 "parser_cocci_menhir.ml" in -# 1233 "parser_cocci_menhir.mly" +# 1245 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -16100,7 +16128,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))] ) -# 16104 "parser_cocci_menhir.ml" +# 16132 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16139,29 +16167,109 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _5 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 16145 "parser_cocci_menhir.ml" +# 16173 "parser_cocci_menhir.ml" ) = Obj.magic _5 in let _4 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 16150 "parser_cocci_menhir.ml" +# 16178 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr_list_option = Obj.magic _3 in let _2 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 16156 "parser_cocci_menhir.ml" +# 16184 "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 = -# 1241 "parser_cocci_menhir.mly" +# 1253 "parser_cocci_menhir.mly" ( [Ast0.wrap(Ast0.MacroDecl(_1,P.clt2mcode "(" _2,_3, P.clt2mcode ")" _4,P.clt2mcode ";" _5))] ) -# 16165 "parser_cocci_menhir.ml" +# 16193 "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 = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = q; + MenhirLib.EngineTypes.startp = _startpos_q_; + MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + } = _menhir_stack in + let _7 : ( +# 179 "parser_cocci_menhir.mly" + (Data.clt) +# 16244 "parser_cocci_menhir.ml" + ) = Obj.magic _7 in + let e : 'tv_initialize = Obj.magic e in + let q : ( +# 179 "parser_cocci_menhir.mly" + (Data.clt) +# 16250 "parser_cocci_menhir.ml" + ) = Obj.magic q in + let _4 : ( +# 149 "parser_cocci_menhir.mly" + (Data.clt) +# 16255 "parser_cocci_menhir.ml" + ) = Obj.magic _4 in + let _3 : 'tv_eexpr_list_option = Obj.magic _3 in + let _2 : ( +# 148 "parser_cocci_menhir.mly" + (Data.clt) +# 16261 "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__7_ in + let _v : 'tv_decl_var = +# 1256 "parser_cocci_menhir.mly" + ( [Ast0.wrap + (Ast0.MacroDeclInit + (_1,P.clt2mcode "(" _2,_3, + P.clt2mcode ")" _4,P.clt2mcode "=" q,e, + P.clt2mcode ";" _7))] ) +# 16273 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16230,42 +16338,42 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 16236 "parser_cocci_menhir.ml" +# 16344 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 16242 "parser_cocci_menhir.ml" +# 16350 "parser_cocci_menhir.ml" ) = Obj.magic q in let rp2 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 16247 "parser_cocci_menhir.ml" +# 16355 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 16253 "parser_cocci_menhir.ml" +# 16361 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 16258 "parser_cocci_menhir.ml" +# 16366 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 168 "parser_cocci_menhir.mly" +# 171 "parser_cocci_menhir.mly" (Data.clt) -# 16264 "parser_cocci_menhir.ml" +# 16372 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 16269 "parser_cocci_menhir.ml" +# 16377 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in let t : 'tv_ctype = Obj.magic t in let _startpos = _startpos_t_ in @@ -16274,11 +16382,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 16278 "parser_cocci_menhir.ml" +# 16386 "parser_cocci_menhir.ml" in -# 1247 "parser_cocci_menhir.mly" +# 1265 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -16286,7 +16394,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))]) -# 16290 "parser_cocci_menhir.ml" +# 16398 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16360,42 +16468,42 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 16366 "parser_cocci_menhir.ml" +# 16474 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 16372 "parser_cocci_menhir.ml" +# 16480 "parser_cocci_menhir.ml" ) = Obj.magic q in let rp2 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 16377 "parser_cocci_menhir.ml" +# 16485 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 16383 "parser_cocci_menhir.ml" +# 16491 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 16388 "parser_cocci_menhir.ml" +# 16496 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 168 "parser_cocci_menhir.mly" +# 171 "parser_cocci_menhir.mly" (Data.clt) -# 16394 "parser_cocci_menhir.ml" +# 16502 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 16399 "parser_cocci_menhir.ml" +# 16507 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in let t : 'tv_ctype = Obj.magic t in let x0 : 'tv_storage = Obj.magic x0 in @@ -16406,11 +16514,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 16410 "parser_cocci_menhir.ml" +# 16518 "parser_cocci_menhir.ml" in -# 1247 "parser_cocci_menhir.mly" +# 1265 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -16418,7 +16526,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))]) -# 16422 "parser_cocci_menhir.ml" +# 16530 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16452,27 +16560,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 16458 "parser_cocci_menhir.ml" +# 16566 "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 : ( -# 119 "parser_cocci_menhir.mly" +# 121 "parser_cocci_menhir.mly" (Data.clt) -# 16465 "parser_cocci_menhir.ml" +# 16573 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_pv_ in let _v : 'tv_decl_var = -# 1255 "parser_cocci_menhir.mly" +# 1273 "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 ) -# 16476 "parser_cocci_menhir.ml" +# 16584 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16494,13 +16602,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_define_param_list_option = -# 990 "parser_cocci_menhir.mly" +# 993 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.DOTS (_1 (fun _ d -> Ast0.wrap(Ast0.DPdots(P.clt2mcode "," d))) (fun c -> Ast0.DPComma c))) ) -# 16504 "parser_cocci_menhir.ml" +# 16612 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16519,14 +16627,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 150 "parser_cocci_menhir.mly" +# 153 "parser_cocci_menhir.mly" (Data.clt * token) -# 16525 "parser_cocci_menhir.ml" +# 16633 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_defineop = -# 934 "parser_cocci_menhir.mly" +# 937 "parser_cocci_menhir.mly" ( let (clt,ident) = _1 in let aft = P.get_aft clt in (* move stuff after the define to the ident *) function body -> @@ -16550,7 +16658,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct "unexpected name for a #define")), Ast0.wrap Ast0.NoParams, body)) ) -# 16554 "parser_cocci_menhir.ml" +# 16662 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16579,20 +16687,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 16585 "parser_cocci_menhir.ml" +# 16693 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_define_param_list_option = Obj.magic _2 in let _1 : ( -# 151 "parser_cocci_menhir.mly" +# 154 "parser_cocci_menhir.mly" (Data.clt * token * int * int) -# 16591 "parser_cocci_menhir.ml" +# 16699 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_defineop = -# 958 "parser_cocci_menhir.mly" +# 961 "parser_cocci_menhir.mly" ( let (clt,ident,parenoff,parencol) = _1 in let aft = P.get_aft clt in (* move stuff after the define to the ( *) (* clt is the start of the #define itself *) @@ -16618,7 +16726,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct "unexpected name for a #define")), (let clt = P.set_aft aft _3 in Ast0.wrap (Ast0.DParams (lp,_2,P.clt2mcode ")" clt))),body)) ) -# 16622 "parser_cocci_menhir.ml" +# 16730 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16637,16 +16745,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 112 "parser_cocci_menhir.mly" +# 114 "parser_cocci_menhir.mly" (string) -# 16643 "parser_cocci_menhir.ml" +# 16751 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_dep = -# 296 "parser_cocci_menhir.mly" +# 299 "parser_cocci_menhir.mly" ( Ast0.Dep _1 ) -# 16650 "parser_cocci_menhir.ml" +# 16758 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16669,16 +16777,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 112 "parser_cocci_menhir.mly" +# 114 "parser_cocci_menhir.mly" (string) -# 16675 "parser_cocci_menhir.ml" +# 16783 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_dep = -# 297 "parser_cocci_menhir.mly" +# 300 "parser_cocci_menhir.mly" ( Ast0.AntiDep (Ast0.Dep _2) ) -# 16682 "parser_cocci_menhir.ml" +# 16790 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16712,9 +16820,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_dep = -# 299 "parser_cocci_menhir.mly" +# 302 "parser_cocci_menhir.mly" ( Ast0.AntiDep _3 ) -# 16718 "parser_cocci_menhir.ml" +# 16826 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16737,16 +16845,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 112 "parser_cocci_menhir.mly" +# 114 "parser_cocci_menhir.mly" (string) -# 16743 "parser_cocci_menhir.ml" +# 16851 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_dep = -# 300 "parser_cocci_menhir.mly" +# 303 "parser_cocci_menhir.mly" ( Ast0.EverDep _2 ) -# 16750 "parser_cocci_menhir.ml" +# 16858 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16769,16 +16877,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 112 "parser_cocci_menhir.mly" +# 114 "parser_cocci_menhir.mly" (string) -# 16775 "parser_cocci_menhir.ml" +# 16883 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_dep = -# 301 "parser_cocci_menhir.mly" +# 304 "parser_cocci_menhir.mly" ( Ast0.NeverDep _2 ) -# 16782 "parser_cocci_menhir.ml" +# 16890 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16810,9 +16918,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_dep = -# 302 "parser_cocci_menhir.mly" +# 305 "parser_cocci_menhir.mly" ( Ast0.AndDep(_1, _3) ) -# 16816 "parser_cocci_menhir.ml" +# 16924 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16844,9 +16952,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_dep = -# 303 "parser_cocci_menhir.mly" +# 306 "parser_cocci_menhir.mly" ( Ast0.OrDep (_1, _3) ) -# 16850 "parser_cocci_menhir.ml" +# 16958 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16876,9 +16984,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_dep = -# 304 "parser_cocci_menhir.mly" +# 307 "parser_cocci_menhir.mly" ( _2 ) -# 16882 "parser_cocci_menhir.ml" +# 16990 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16893,9 +17001,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 = -# 292 "parser_cocci_menhir.mly" +# 295 "parser_cocci_menhir.mly" ( Ast0.NoDep ) -# 16899 "parser_cocci_menhir.ml" +# 17007 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16925,9 +17033,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_parents_ in let _v : 'tv_depends = -# 293 "parser_cocci_menhir.mly" +# 296 "parser_cocci_menhir.mly" ( parents ) -# 16931 "parser_cocci_menhir.ml" +# 17039 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16952,16 +17060,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_disj_ident = Obj.magic _2 in let _1 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 16958 "parser_cocci_menhir.ml" +# 17066 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_designator = -# 1364 "parser_cocci_menhir.mly" +# 1388 "parser_cocci_menhir.mly" ( Ast0.DesignatorField (P.clt2mcode "." _1,_2) ) -# 16965 "parser_cocci_menhir.ml" +# 17073 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16990,22 +17098,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 171 "parser_cocci_menhir.mly" +# 174 "parser_cocci_menhir.mly" (Data.clt) -# 16996 "parser_cocci_menhir.ml" +# 17104 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 171 "parser_cocci_menhir.mly" +# 174 "parser_cocci_menhir.mly" (Data.clt) -# 17002 "parser_cocci_menhir.ml" +# 17110 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_designator = -# 1366 "parser_cocci_menhir.mly" +# 1390 "parser_cocci_menhir.mly" ( Ast0.DesignatorIndex (P.clt2mcode "[" _1,_2,P.clt2mcode "]" _3) ) -# 17009 "parser_cocci_menhir.ml" +# 17117 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17044,29 +17152,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _5 : ( -# 171 "parser_cocci_menhir.mly" +# 174 "parser_cocci_menhir.mly" (Data.clt) -# 17050 "parser_cocci_menhir.ml" +# 17158 "parser_cocci_menhir.ml" ) = Obj.magic _5 in let _4 : 'tv_eexpr = Obj.magic _4 in let _3 : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 17056 "parser_cocci_menhir.ml" +# 17164 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 171 "parser_cocci_menhir.mly" +# 174 "parser_cocci_menhir.mly" (Data.clt) -# 17062 "parser_cocci_menhir.ml" +# 17170 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : 'tv_designator = -# 1368 "parser_cocci_menhir.mly" +# 1392 "parser_cocci_menhir.mly" ( Ast0.DesignatorRange (P.clt2mcode "[" _1,_2,P.clt2mcode "..." _3, _4,P.clt2mcode "]" _5) ) -# 17070 "parser_cocci_menhir.ml" +# 17178 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17084,13 +17192,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_basic_expr_eexpr_nest_expressions_ = Obj.magic _1 in + let _1 : 'tv_pre_basic_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_dexpr = -# 1447 "parser_cocci_menhir.mly" - ( _1 ) -# 17094 "parser_cocci_menhir.ml" +# 1475 "parser_cocci_menhir.mly" + ( _1 ) +# 17202 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17116,9 +17224,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_disable = -# 310 "parser_cocci_menhir.mly" +# 313 "parser_cocci_menhir.mly" ( List.map P.id2name _2 ) -# 17122 "parser_cocci_menhir.ml" +# 17230 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17140,9 +17248,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_disj_ident = -# 1997 "parser_cocci_menhir.mly" +# 2033 "parser_cocci_menhir.mly" ( _1 ) -# 17146 "parser_cocci_menhir.ml" +# 17254 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17171,24 +17279,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 17177 "parser_cocci_menhir.ml" +# 17285 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_midzero_list_disj_ident_disj_ident_ = Obj.magic t in let lp : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 17183 "parser_cocci_menhir.ml" +# 17291 "parser_cocci_menhir.ml" ) = Obj.magic lp in let _startpos = _startpos_lp_ in let _endpos = _endpos_rp_ in let _v : 'tv_disj_ident = -# 1999 "parser_cocci_menhir.mly" +# 2035 "parser_cocci_menhir.mly" ( let (mids,code) = t in Ast0.wrap (Ast0.DisjId(P.clt2mcode "(" lp,code,mids, P.clt2mcode ")" rp)) ) -# 17192 "parser_cocci_menhir.ml" +# 17300 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17207,16 +17315,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 17213 "parser_cocci_menhir.ml" +# 17321 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_dot_expressions = -# 1456 "parser_cocci_menhir.mly" +# 1485 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Edots(P.clt2mcode "..." _1,None)) ) -# 17220 "parser_cocci_menhir.ml" +# 17328 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17238,9 +17346,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_dot_expressions = -# 1457 "parser_cocci_menhir.mly" +# 1486 "parser_cocci_menhir.mly" ( _1 ) -# 17244 "parser_cocci_menhir.ml" +# 17352 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17262,9 +17370,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_dparam = -# 986 "parser_cocci_menhir.mly" +# 989 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DParam _1) ) -# 17268 "parser_cocci_menhir.ml" +# 17376 "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.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_basic_expr_eexpr_dot_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_eargexpr = +# 1473 "parser_cocci_menhir.mly" + ( _1 ) +# 17400 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17283,16 +17415,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 17289 "parser_cocci_menhir.ml" +# 17421 "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_ = -# 2319 "parser_cocci_menhir.mly" +# 2355 "parser_cocci_menhir.mly" ( (d,None) ) -# 17296 "parser_cocci_menhir.ml" +# 17428 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17329,16 +17461,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let w : 'tv_eexpr = Obj.magic w in let d : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 17335 "parser_cocci_menhir.ml" +# 17467 "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_ = -# 2320 "parser_cocci_menhir.mly" +# 2356 "parser_cocci_menhir.mly" ( (d,Some w) ) -# 17342 "parser_cocci_menhir.ml" +# 17474 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17357,16 +17489,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 17363 "parser_cocci_menhir.ml" +# 17495 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : 'tv_edots_when_TEllipsis_enum_decl_one_ = -# 2319 "parser_cocci_menhir.mly" +# 2355 "parser_cocci_menhir.mly" ( (d,None) ) -# 17370 "parser_cocci_menhir.ml" +# 17502 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17403,16 +17535,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let w : 'tv_enum_decl_one = Obj.magic w in let d : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 17409 "parser_cocci_menhir.ml" +# 17541 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos__5_ in let _v : 'tv_edots_when_TEllipsis_enum_decl_one_ = -# 2320 "parser_cocci_menhir.mly" +# 2356 "parser_cocci_menhir.mly" ( (d,Some w) ) -# 17416 "parser_cocci_menhir.ml" +# 17548 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17431,16 +17563,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 17437 "parser_cocci_menhir.ml" +# 17569 "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_ = -# 2319 "parser_cocci_menhir.mly" +# 2355 "parser_cocci_menhir.mly" ( (d,None) ) -# 17444 "parser_cocci_menhir.ml" +# 17576 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17477,16 +17609,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let w : 'tv_initialize = Obj.magic w in let d : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 17483 "parser_cocci_menhir.ml" +# 17615 "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_ = -# 2320 "parser_cocci_menhir.mly" +# 2356 "parser_cocci_menhir.mly" ( (d,Some w) ) -# 17490 "parser_cocci_menhir.ml" +# 17622 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17505,16 +17637,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 17511 "parser_cocci_menhir.ml" +# 17643 "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_one_ = -# 2319 "parser_cocci_menhir.mly" +# 2355 "parser_cocci_menhir.mly" ( (d,None) ) -# 17518 "parser_cocci_menhir.ml" +# 17650 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17551,16 +17683,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let w : 'tv_struct_decl_one = Obj.magic w in let d : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 17557 "parser_cocci_menhir.ml" +# 17689 "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_one_ = -# 2320 "parser_cocci_menhir.mly" +# 2356 "parser_cocci_menhir.mly" ( (d,Some w) ) -# 17564 "parser_cocci_menhir.ml" +# 17696 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17578,13 +17710,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_basic_expr_eexpr_dot_expressions_ = Obj.magic _1 in + let _1 : 'tv_pre_basic_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_eexpr = -# 1445 "parser_cocci_menhir.mly" - ( _1 ) -# 17588 "parser_cocci_menhir.ml" +# 1472 "parser_cocci_menhir.mly" + ( _1 ) +# 17720 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17606,13 +17738,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_eexpr_list_option = -# 2299 "parser_cocci_menhir.mly" +# 2335 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.DOTS (_1 (fun _ d -> Ast0.wrap(Ast0.Edots(P.clt2mcode "..." d,None))) (fun c -> Ast0.EComma c))) ) -# 17616 "parser_cocci_menhir.ml" +# 17748 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17627,9 +17759,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_empty_list_start_aexpr_TEllipsis_ = -# 2061 "parser_cocci_menhir.mly" +# 2097 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [] ) -# 17633 "parser_cocci_menhir.ml" +# 17765 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17651,9 +17783,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_empty_list_start_aexpr_TEllipsis_ = -# 2062 "parser_cocci_menhir.mly" +# 2098 "parser_cocci_menhir.mly" ( _1 ) -# 17657 "parser_cocci_menhir.ml" +# 17789 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17668,9 +17800,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_empty_list_start_dparam_TEllipsis_ = -# 2061 "parser_cocci_menhir.mly" +# 2097 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [] ) -# 17674 "parser_cocci_menhir.ml" +# 17806 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17692,9 +17824,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_empty_list_start_dparam_TEllipsis_ = -# 2062 "parser_cocci_menhir.mly" +# 2098 "parser_cocci_menhir.mly" ( _1 ) -# 17698 "parser_cocci_menhir.ml" +# 17830 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17709,9 +17841,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_empty_list_start_initialize2_edots_when_TEllipsis_initialize__ = -# 2061 "parser_cocci_menhir.mly" +# 2097 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [] ) -# 17715 "parser_cocci_menhir.ml" +# 17847 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17733,9 +17865,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_empty_list_start_initialize2_edots_when_TEllipsis_initialize__ = -# 2062 "parser_cocci_menhir.mly" +# 2098 "parser_cocci_menhir.mly" ( _1 ) -# 17739 "parser_cocci_menhir.ml" +# 17871 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17750,9 +17882,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_empty_list_start_one_dec_decl__TEllipsis_ = -# 2061 "parser_cocci_menhir.mly" +# 2097 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [] ) -# 17756 "parser_cocci_menhir.ml" +# 17888 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17774,9 +17906,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_empty_list_start_one_dec_decl__TEllipsis_ = -# 2062 "parser_cocci_menhir.mly" +# 2098 "parser_cocci_menhir.mly" ( _1 ) -# 17780 "parser_cocci_menhir.ml" +# 17912 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17791,9 +17923,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_empty_list_start_one_dec_name_opt_decl__TEllipsis_ = -# 2061 "parser_cocci_menhir.mly" +# 2097 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [] ) -# 17797 "parser_cocci_menhir.ml" +# 17929 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17815,9 +17947,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_empty_list_start_one_dec_name_opt_decl__TEllipsis_ = -# 2062 "parser_cocci_menhir.mly" +# 2098 "parser_cocci_menhir.mly" ( _1 ) -# 17821 "parser_cocci_menhir.ml" +# 17953 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17839,9 +17971,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_enum_decl_list = -# 832 "parser_cocci_menhir.mly" +# 835 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS(_1 P.mkedots (fun c -> Ast0.EComma c))) ) -# 17845 "parser_cocci_menhir.ml" +# 17977 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17863,9 +17995,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_enum_decl_one = -# 803 "parser_cocci_menhir.mly" +# 806 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Ident(_1)) ) -# 17869 "parser_cocci_menhir.ml" +# 18001 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17895,21 +18027,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_enum_val = Obj.magic _3 in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 17901 "parser_cocci_menhir.ml" +# 18033 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_disj_ident = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_enum_decl_one = -# 805 "parser_cocci_menhir.mly" +# 808 "parser_cocci_menhir.mly" ( let id = Ast0.wrap(Ast0.Ident(_1)) in Ast0.wrap (Ast0.Assignment (id,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3, false)) ) -# 17913 "parser_cocci_menhir.ml" +# 18045 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17931,9 +18063,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_enum_val = -# 812 "parser_cocci_menhir.mly" +# 815 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Ident(_1)) ) -# 17937 "parser_cocci_menhir.ml" +# 18069 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17952,17 +18084,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 17958 "parser_cocci_menhir.ml" +# 18090 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_enum_val = -# 814 "parser_cocci_menhir.mly" +# 817 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) -# 17966 "parser_cocci_menhir.ml" +# 18098 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17981,16 +18113,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 133 "parser_cocci_menhir.mly" +# 135 "parser_cocci_menhir.mly" (Parse_aux.info) -# 17987 "parser_cocci_menhir.ml" +# 18119 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_enum_val = -# 816 "parser_cocci_menhir.mly" +# 819 "parser_cocci_menhir.mly" ( tmeta_to_exp _1 ) -# 17994 "parser_cocci_menhir.ml" +# 18126 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18009,18 +18141,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 136 "parser_cocci_menhir.mly" +# 138 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 18015 "parser_cocci_menhir.ml" +# 18147 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_enum_val = -# 818 "parser_cocci_menhir.mly" +# 821 "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)) ) -# 18024 "parser_cocci_menhir.ml" +# 18156 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18039,18 +18171,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 136 "parser_cocci_menhir.mly" +# 138 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 18045 "parser_cocci_menhir.ml" +# 18177 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_enum_val = -# 822 "parser_cocci_menhir.mly" +# 825 "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)) ) -# 18054 "parser_cocci_menhir.ml" +# 18186 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18069,18 +18201,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 136 "parser_cocci_menhir.mly" +# 138 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 18075 "parser_cocci_menhir.ml" +# 18207 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_enum_val = -# 826 "parser_cocci_menhir.mly" +# 829 "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)) ) -# 18084 "parser_cocci_menhir.ml" +# 18216 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18100,9 +18232,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_exists = -# 313 "parser_cocci_menhir.mly" +# 316 "parser_cocci_menhir.mly" ( Ast.Exists ) -# 18106 "parser_cocci_menhir.ml" +# 18238 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18122,9 +18254,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_exists = -# 314 "parser_cocci_menhir.mly" +# 317 "parser_cocci_menhir.mly" ( Ast.Forall ) -# 18128 "parser_cocci_menhir.ml" +# 18260 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18139,9 +18271,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 = -# 315 "parser_cocci_menhir.mly" +# 318 "parser_cocci_menhir.mly" ( Ast.Undetermined ) -# 18145 "parser_cocci_menhir.ml" +# 18277 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18163,9 +18295,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_expr = -# 1443 "parser_cocci_menhir.mly" +# 1470 "parser_cocci_menhir.mly" ( _1 ) -# 18169 "parser_cocci_menhir.ml" +# 18301 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18187,9 +18319,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_r_ in let _endpos = _endpos_r_ in let _v : 'tv_expr_dots_TEllipsis_ = -# 1697 "parser_cocci_menhir.mly" +# 1733 "parser_cocci_menhir.mly" ( r ) -# 18193 "parser_cocci_menhir.ml" +# 18325 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18211,9 +18343,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_m_ in let _endpos = _endpos_m_ in let _v : 'tv_expression_type = -# 574 "parser_cocci_menhir.mly" +# 577 "parser_cocci_menhir.mly" ( P.ty_pointerify Type_cocci.Unknown m ) -# 18217 "parser_cocci_menhir.ml" +# 18349 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18239,9 +18371,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_m_ in let _v : 'tv_expression_type = -# 576 "parser_cocci_menhir.mly" +# 579 "parser_cocci_menhir.mly" ( P.ty_pointerify (Type_cocci.EnumName Type_cocci.NoName) m ) -# 18245 "parser_cocci_menhir.ml" +# 18377 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18267,10 +18399,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_m_ in let _v : 'tv_expression_type = -# 578 "parser_cocci_menhir.mly" +# 581 "parser_cocci_menhir.mly" ( P.ty_pointerify (Type_cocci.StructUnionName (Type_cocci.Struct,Type_cocci.NoName)) m ) -# 18274 "parser_cocci_menhir.ml" +# 18406 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18296,10 +18428,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_m_ in let _v : 'tv_expression_type = -# 581 "parser_cocci_menhir.mly" +# 584 "parser_cocci_menhir.mly" ( P.ty_pointerify (Type_cocci.StructUnionName (Type_cocci.Union,Type_cocci.NoName)) m ) -# 18303 "parser_cocci_menhir.ml" +# 18435 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18314,9 +18446,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 = -# 287 "parser_cocci_menhir.mly" +# 290 "parser_cocci_menhir.mly" ( () ) -# 18320 "parser_cocci_menhir.ml" +# 18452 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18339,16 +18471,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let parent : ( -# 112 "parser_cocci_menhir.mly" +# 114 "parser_cocci_menhir.mly" (string) -# 18345 "parser_cocci_menhir.ml" +# 18477 "parser_cocci_menhir.ml" ) = Obj.magic parent in let _startpos = _startpos__1_ in let _endpos = _endpos_parent_ in let _v : 'tv_extends = -# 289 "parser_cocci_menhir.mly" +# 292 "parser_cocci_menhir.mly" ( !Data.install_bindings (parent) ) -# 18352 "parser_cocci_menhir.ml" +# 18484 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18372,23 +18504,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 152 "parser_cocci_menhir.mly" +# 155 "parser_cocci_menhir.mly" (string * Data.clt) -# 18378 "parser_cocci_menhir.ml" +# 18510 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 152 "parser_cocci_menhir.mly" +# 155 "parser_cocci_menhir.mly" (string * Data.clt) -# 18383 "parser_cocci_menhir.ml" +# 18515 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_filespec = -# 869 "parser_cocci_menhir.mly" +# 872 "parser_cocci_menhir.mly" ( [Ast0.wrap (Ast0.FILEINFO(P.id2mcode _1, P.id2mcode _2))] ) -# 18392 "parser_cocci_menhir.ml" +# 18524 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18410,9 +18542,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_fn_ident = -# 1972 "parser_cocci_menhir.mly" +# 2008 "parser_cocci_menhir.mly" ( _1 ) -# 18416 "parser_cocci_menhir.ml" +# 18548 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18431,17 +18563,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 129 "parser_cocci_menhir.mly" +# 131 "parser_cocci_menhir.mly" (Parse_aux.idinfo) -# 18437 "parser_cocci_menhir.ml" +# 18569 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_fn_ident = -# 1974 "parser_cocci_menhir.mly" +# 2010 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaFunc(P.clt2mcode nm clt,constraints,pure)) ) -# 18445 "parser_cocci_menhir.ml" +# 18577 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18460,18 +18592,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 129 "parser_cocci_menhir.mly" +# 131 "parser_cocci_menhir.mly" (Parse_aux.idinfo) -# 18466 "parser_cocci_menhir.ml" +# 18598 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_fn_ident = -# 1977 "parser_cocci_menhir.mly" +# 2013 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap (Ast0.MetaLocalFunc(P.clt2mcode nm clt,constraints,pure)) ) -# 18475 "parser_cocci_menhir.ml" +# 18607 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18486,9 +18618,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 = -# 1022 "parser_cocci_menhir.mly" +# 1025 "parser_cocci_menhir.mly" ( [] ) -# 18492 "parser_cocci_menhir.ml" +# 18624 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18516,13 +18648,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fninfo = -# 1024 "parser_cocci_menhir.mly" +# 1027 "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 ) -# 18526 "parser_cocci_menhir.ml" +# 18658 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18550,9 +18682,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_t_ in let _endpos = _endpos_r_ in let _v : 'tv_fninfo = -# 1029 "parser_cocci_menhir.mly" +# 1032 "parser_cocci_menhir.mly" ( (Ast0.FType(t))::r ) -# 18556 "parser_cocci_menhir.ml" +# 18688 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18577,19 +18709,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_fninfo = Obj.magic _2 in let _1 : ( -# 119 "parser_cocci_menhir.mly" +# 121 "parser_cocci_menhir.mly" (Data.clt) -# 18583 "parser_cocci_menhir.ml" +# 18715 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fninfo = -# 1031 "parser_cocci_menhir.mly" +# 1034 "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 ) -# 18593 "parser_cocci_menhir.ml" +# 18725 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18614,19 +18746,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_fninfo = Obj.magic _2 in let _1 : ( -# 121 "parser_cocci_menhir.mly" +# 123 "parser_cocci_menhir.mly" (string * Data.clt) -# 18620 "parser_cocci_menhir.ml" +# 18752 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fninfo = -# 1036 "parser_cocci_menhir.mly" +# 1039 "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 ) -# 18630 "parser_cocci_menhir.ml" +# 18762 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18641,9 +18773,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 = -# 1042 "parser_cocci_menhir.mly" +# 1045 "parser_cocci_menhir.mly" ( [] ) -# 18647 "parser_cocci_menhir.ml" +# 18779 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18671,13 +18803,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fninfo_nt = -# 1044 "parser_cocci_menhir.mly" +# 1047 "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 ) -# 18681 "parser_cocci_menhir.ml" +# 18813 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18702,19 +18834,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_fninfo_nt = Obj.magic _2 in let _1 : ( -# 119 "parser_cocci_menhir.mly" +# 121 "parser_cocci_menhir.mly" (Data.clt) -# 18708 "parser_cocci_menhir.ml" +# 18840 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fninfo_nt = -# 1050 "parser_cocci_menhir.mly" +# 1053 "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 ) -# 18718 "parser_cocci_menhir.ml" +# 18850 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18739,19 +18871,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_fninfo_nt = Obj.magic _2 in let _1 : ( -# 121 "parser_cocci_menhir.mly" +# 123 "parser_cocci_menhir.mly" (string * Data.clt) -# 18745 "parser_cocci_menhir.ml" +# 18877 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fninfo_nt = -# 1055 "parser_cocci_menhir.mly" +# 1058 "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 ) -# 18755 "parser_cocci_menhir.ml" +# 18887 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18766,9 +18898,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 = -# 2232 "parser_cocci_menhir.mly" +# 2268 "parser_cocci_menhir.mly" ([]) -# 18772 "parser_cocci_menhir.ml" +# 18904 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18794,9 +18926,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_dots = -# 2233 "parser_cocci_menhir.mly" +# 2269 "parser_cocci_menhir.mly" (_2) -# 18800 "parser_cocci_menhir.ml" +# 18932 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18824,9 +18956,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_dots = -# 2234 "parser_cocci_menhir.mly" +# 2270 "parser_cocci_menhir.mly" (Ast0.wrap(Ast0.Exp(_1))::_2) -# 18830 "parser_cocci_menhir.ml" +# 18962 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18854,9 +18986,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_dots = -# 2235 "parser_cocci_menhir.mly" +# 2271 "parser_cocci_menhir.mly" (_1@_2) -# 18860 "parser_cocci_menhir.ml" +# 18992 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18871,9 +19003,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 = -# 2242 "parser_cocci_menhir.mly" +# 2278 "parser_cocci_menhir.mly" ([]) -# 18877 "parser_cocci_menhir.ml" +# 19009 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18899,9 +19031,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_dots_or = -# 2243 "parser_cocci_menhir.mly" +# 2279 "parser_cocci_menhir.mly" (_2) -# 18905 "parser_cocci_menhir.ml" +# 19037 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18929,9 +19061,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_dots_or = -# 2244 "parser_cocci_menhir.mly" +# 2280 "parser_cocci_menhir.mly" (Ast0.wrap(Ast0.Exp(_1))::_2) -# 18935 "parser_cocci_menhir.ml" +# 19067 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18959,9 +19091,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_dots_or = -# 2245 "parser_cocci_menhir.mly" +# 2281 "parser_cocci_menhir.mly" (_1@_2) -# 18965 "parser_cocci_menhir.ml" +# 19097 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18989,9 +19121,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_exp = -# 2238 "parser_cocci_menhir.mly" +# 2274 "parser_cocci_menhir.mly" (_1::_2) -# 18995 "parser_cocci_menhir.ml" +# 19127 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19006,9 +19138,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 = -# 2248 "parser_cocci_menhir.mly" +# 2284 "parser_cocci_menhir.mly" ([]) -# 19012 "parser_cocci_menhir.ml" +# 19144 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19036,9 +19168,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_exp_or = -# 2249 "parser_cocci_menhir.mly" +# 2285 "parser_cocci_menhir.mly" (_1::_2) -# 19042 "parser_cocci_menhir.ml" +# 19174 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19053,9 +19185,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 = -# 2227 "parser_cocci_menhir.mly" +# 2263 "parser_cocci_menhir.mly" ([]) -# 19059 "parser_cocci_menhir.ml" +# 19191 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19083,9 +19215,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_stm = -# 2228 "parser_cocci_menhir.mly" +# 2264 "parser_cocci_menhir.mly" (_1::_2) -# 19089 "parser_cocci_menhir.ml" +# 19221 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19113,9 +19245,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_stm = -# 2229 "parser_cocci_menhir.mly" +# 2265 "parser_cocci_menhir.mly" (_1@_2) -# 19119 "parser_cocci_menhir.ml" +# 19251 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19137,9 +19269,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_fun_start = -# 2224 "parser_cocci_menhir.mly" +# 2260 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS(_1)) ) -# 19143 "parser_cocci_menhir.ml" +# 19275 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19161,9 +19293,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_func_ident = -# 1963 "parser_cocci_menhir.mly" +# 1999 "parser_cocci_menhir.mly" ( _1 ) -# 19167 "parser_cocci_menhir.ml" +# 19299 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19182,17 +19314,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 129 "parser_cocci_menhir.mly" +# 131 "parser_cocci_menhir.mly" (Parse_aux.idinfo) -# 19188 "parser_cocci_menhir.ml" +# 19320 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_func_ident = -# 1965 "parser_cocci_menhir.mly" +# 2001 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaFunc(P.clt2mcode nm clt,constraints,pure)) ) -# 19196 "parser_cocci_menhir.ml" +# 19328 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19211,18 +19343,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 129 "parser_cocci_menhir.mly" +# 131 "parser_cocci_menhir.mly" (Parse_aux.idinfo) -# 19217 "parser_cocci_menhir.ml" +# 19349 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_func_ident = -# 1968 "parser_cocci_menhir.mly" +# 2004 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap (Ast0.MetaLocalFunc(P.clt2mcode nm clt,constraints,pure)) ) -# 19226 "parser_cocci_menhir.ml" +# 19358 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19280,33 +19412,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rb : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 19286 "parser_cocci_menhir.ml" +# 19418 "parser_cocci_menhir.ml" ) = Obj.magic rb in let b : 'tv_fun_start = Obj.magic b in let lb : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 19292 "parser_cocci_menhir.ml" +# 19424 "parser_cocci_menhir.ml" ) = Obj.magic lb in let rp : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 19297 "parser_cocci_menhir.ml" +# 19429 "parser_cocci_menhir.ml" ) = Obj.magic rp in let d : 'tv_decl_list_decl_ = Obj.magic d in let lp : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 19303 "parser_cocci_menhir.ml" +# 19435 "parser_cocci_menhir.ml" ) = Obj.magic lp in let i : 'tv_fn_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 = -# 1013 "parser_cocci_menhir.mly" +# 1016 "parser_cocci_menhir.mly" ( P.verify_parameter_declarations (Ast0.undots d); Ast0.wrap(Ast0.FunDecl((Ast0.default_info(),Ast0.context_befaft()), f, i, @@ -19314,7 +19446,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct P.clt2mcode ")" rp, P.clt2mcode "{" lb, b, P.clt2mcode "}" rb)) ) -# 19318 "parser_cocci_menhir.ml" +# 19450 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19358,20 +19490,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pt : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 19364 "parser_cocci_menhir.ml" +# 19496 "parser_cocci_menhir.ml" ) = Obj.magic pt in let rp : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 19369 "parser_cocci_menhir.ml" +# 19501 "parser_cocci_menhir.ml" ) = Obj.magic rp in let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in let lp : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 19375 "parser_cocci_menhir.ml" +# 19507 "parser_cocci_menhir.ml" ) = Obj.magic lp in let id : 'tv_fn_ident = Obj.magic id in let t : 'tv_ctype = Obj.magic t in @@ -19381,11 +19513,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 19385 "parser_cocci_menhir.ml" +# 19517 "parser_cocci_menhir.ml" in -# 1001 "parser_cocci_menhir.mly" +# 1004 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.UnInit (s, @@ -19393,7 +19525,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (Ast0.FunctionType(Some t, P.clt2mcode "(" lp, d, P.clt2mcode ")" rp)), id, P.clt2mcode ";" pt)) ) -# 19397 "parser_cocci_menhir.ml" +# 19529 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19442,20 +19574,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pt : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 19448 "parser_cocci_menhir.ml" +# 19580 "parser_cocci_menhir.ml" ) = Obj.magic pt in let rp : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 19453 "parser_cocci_menhir.ml" +# 19585 "parser_cocci_menhir.ml" ) = Obj.magic rp in let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in let lp : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 19459 "parser_cocci_menhir.ml" +# 19591 "parser_cocci_menhir.ml" ) = Obj.magic lp in let id : 'tv_fn_ident = Obj.magic id in let t : 'tv_ctype = Obj.magic t in @@ -19467,11 +19599,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 19471 "parser_cocci_menhir.ml" +# 19603 "parser_cocci_menhir.ml" in -# 1001 "parser_cocci_menhir.mly" +# 1004 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.UnInit (s, @@ -19479,7 +19611,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (Ast0.FunctionType(Some t, P.clt2mcode "(" lp, d, P.clt2mcode ")" rp)), id, P.clt2mcode ";" pt)) ) -# 19483 "parser_cocci_menhir.ml" +# 19615 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19501,9 +19633,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_ident = -# 1982 "parser_cocci_menhir.mly" +# 2018 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) ) -# 19507 "parser_cocci_menhir.ml" +# 19639 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19525,9 +19657,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_ident = -# 1983 "parser_cocci_menhir.mly" +# 2019 "parser_cocci_menhir.mly" ( _1 ) -# 19531 "parser_cocci_menhir.ml" +# 19663 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19546,17 +19678,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 128 "parser_cocci_menhir.mly" +# 130 "parser_cocci_menhir.mly" (Parse_aux.midinfo) -# 19552 "parser_cocci_menhir.ml" +# 19684 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_ident = -# 1985 "parser_cocci_menhir.mly" +# 2021 "parser_cocci_menhir.mly" ( let (nm,constraints,seed,pure,clt) = _1 in Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,seed,pure)) ) -# 19560 "parser_cocci_menhir.ml" +# 19692 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19578,9 +19710,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_i_ in let _endpos = _endpos_i_ in let _v : 'tv_ident_or_const = -# 1935 "parser_cocci_menhir.mly" +# 1971 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Ident(Ast0.wrap(Ast0.Id(P.id2mcode i)))) ) -# 19584 "parser_cocci_menhir.ml" +# 19716 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19602,9 +19734,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_ident_or_const = -# 1936 "parser_cocci_menhir.mly" +# 1972 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Ident(_1)) ) -# 19608 "parser_cocci_menhir.ml" +# 19740 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19623,17 +19755,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 19629 "parser_cocci_menhir.ml" +# 19761 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_ident_or_const = -# 1938 "parser_cocci_menhir.mly" +# 1974 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) -# 19637 "parser_cocci_menhir.ml" +# 19769 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19652,16 +19784,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 149 "parser_cocci_menhir.mly" +# 152 "parser_cocci_menhir.mly" (string * Data.clt) -# 19658 "parser_cocci_menhir.ml" +# 19790 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_incl = -# 326 "parser_cocci_menhir.mly" +# 329 "parser_cocci_menhir.mly" ( let (x,_) = _1 in Data.Include(x) ) -# 19665 "parser_cocci_menhir.ml" +# 19797 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19684,16 +19816,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 19690 "parser_cocci_menhir.ml" +# 19822 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_incl = -# 327 "parser_cocci_menhir.mly" +# 330 "parser_cocci_menhir.mly" ( Data.Iso(Common.Left(P.id2name _2)) ) -# 19697 "parser_cocci_menhir.ml" +# 19829 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19716,16 +19848,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 148 "parser_cocci_menhir.mly" +# 151 "parser_cocci_menhir.mly" (string) -# 19722 "parser_cocci_menhir.ml" +# 19854 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_incl = -# 328 "parser_cocci_menhir.mly" +# 331 "parser_cocci_menhir.mly" ( Data.Iso(Common.Right _2) ) -# 19729 "parser_cocci_menhir.ml" +# 19861 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19751,7 +19883,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_incl = -# 330 "parser_cocci_menhir.mly" +# 333 "parser_cocci_menhir.mly" ( let names = List.map P.id2name _2 in Iteration.parsed_virtual_rules := Common.union_set names !Iteration.parsed_virtual_rules; @@ -19760,7 +19892,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (function name -> Hashtbl.add Data.all_metadecls name []) names; Data.Virt(names) ) -# 19764 "parser_cocci_menhir.ml" +# 19896 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19786,13 +19918,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 217 "parser_cocci_menhir.mly" +# 220 "parser_cocci_menhir.mly" (Data.incl_iso list) -# 19792 "parser_cocci_menhir.ml" +# 19924 "parser_cocci_menhir.ml" ) = -# 322 "parser_cocci_menhir.mly" +# 325 "parser_cocci_menhir.mly" ( _1 ) -# 19796 "parser_cocci_menhir.ml" +# 19928 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19818,13 +19950,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 217 "parser_cocci_menhir.mly" +# 220 "parser_cocci_menhir.mly" (Data.incl_iso list) -# 19824 "parser_cocci_menhir.ml" +# 19956 "parser_cocci_menhir.ml" ) = -# 323 "parser_cocci_menhir.mly" +# 326 "parser_cocci_menhir.mly" ( _1 ) -# 19828 "parser_cocci_menhir.ml" +# 19960 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19843,14 +19975,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 149 "parser_cocci_menhir.mly" +# 152 "parser_cocci_menhir.mly" (string * Data.clt) -# 19849 "parser_cocci_menhir.ml" +# 19981 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_includes = -# 875 "parser_cocci_menhir.mly" +# 878 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.Include(P.clt2mcode "#include" (P.drop_pos (P.drop_aft (P.id2clt _1))), @@ -19861,7 +19993,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct P.clt2mcode (Ast.Local (Parse_aux.str2inc (P.id2name _1))) (P.drop_bef clt))) ) -# 19865 "parser_cocci_menhir.ml" +# 19997 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19880,14 +20012,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 149 "parser_cocci_menhir.mly" +# 152 "parser_cocci_menhir.mly" (string * Data.clt) -# 19886 "parser_cocci_menhir.ml" +# 20018 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_includes = -# 886 "parser_cocci_menhir.mly" +# 889 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.Include(P.clt2mcode "#include" (P.drop_pos (P.drop_aft (P.id2clt _1))), @@ -19898,7 +20030,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct P.clt2mcode (Ast.NonLocal (Parse_aux.str2inc (P.id2name _1))) (P.drop_bef clt))) ) -# 19902 "parser_cocci_menhir.ml" +# 20034 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19921,14 +20053,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _1 : ( -# 150 "parser_cocci_menhir.mly" +# 153 "parser_cocci_menhir.mly" (Data.clt * token) -# 19927 "parser_cocci_menhir.ml" +# 20059 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_includes = -# 897 "parser_cocci_menhir.mly" +# 900 "parser_cocci_menhir.mly" ( let (clt,ident) = _1 in let aft = P.get_aft clt in (* move stuff after the define to the ident *) Ast0.wrap @@ -19948,7 +20080,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct raise (Semantic_cocci.Semantic "unexpected name for a #define")))) ) -# 19952 "parser_cocci_menhir.ml" +# 20084 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19974,9 +20106,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_d_ in let _endpos = _endpos__2_ in let _v : 'tv_includes = -# 917 "parser_cocci_menhir.mly" +# 920 "parser_cocci_menhir.mly" ( d (Ast0.wrap(Ast0.DOTS([]))) ) -# 19980 "parser_cocci_menhir.ml" +# 20112 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20008,10 +20140,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_d_ in let _endpos = _endpos__3_ in let _v : 'tv_includes = -# 919 "parser_cocci_menhir.mly" +# 922 "parser_cocci_menhir.mly" ( let ty = Ast0.wrap(Ast0.TopExp(Ast0.wrap(Ast0.TypeExp(t)))) in d (Ast0.wrap(Ast0.DOTS([ty]))) ) -# 20015 "parser_cocci_menhir.ml" +# 20147 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20043,7 +20175,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_includes = -# 922 "parser_cocci_menhir.mly" +# 925 "parser_cocci_menhir.mly" ( let body = match b with [e] -> @@ -20053,7 +20185,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct | _ -> b) | _ -> b in _1 (Ast0.wrap(Ast0.DOTS(body))) ) -# 20057 "parser_cocci_menhir.ml" +# 20189 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20075,9 +20207,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_initialize = -# 1321 "parser_cocci_menhir.mly" +# 1345 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.InitExpr(_1)) ) -# 20081 "parser_cocci_menhir.ml" +# 20213 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20106,27 +20238,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 20112 "parser_cocci_menhir.ml" +# 20244 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_initialize_list = Obj.magic _2 in let _1 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 20118 "parser_cocci_menhir.ml" +# 20250 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_initialize = -# 1323 "parser_cocci_menhir.mly" +# 1347 "parser_cocci_menhir.mly" ( if P.struct_initializer _2 then let il = P.drop_dot_commas _2 in Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,il,P.clt2mcode "}" _3,false)) else Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,_2,P.clt2mcode "}" _3,true)) ) -# 20130 "parser_cocci_menhir.ml" +# 20262 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20145,17 +20277,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 133 "parser_cocci_menhir.mly" +# 135 "parser_cocci_menhir.mly" (Parse_aux.info) -# 20151 "parser_cocci_menhir.ml" +# 20283 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_initialize = -# 1330 "parser_cocci_menhir.mly" +# 1354 "parser_cocci_menhir.mly" (let (nm,pure,clt) = _1 in Ast0.wrap(Ast0.MetaInit(P.clt2mcode nm clt,pure)) ) -# 20159 "parser_cocci_menhir.ml" +# 20291 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20177,9 +20309,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_initialize2 = -# 1336 "parser_cocci_menhir.mly" +# 1360 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.InitExpr(_1)) ) -# 20183 "parser_cocci_menhir.ml" +# 20315 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20208,27 +20340,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 20214 "parser_cocci_menhir.ml" +# 20346 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_initialize_list = Obj.magic _2 in let _1 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 20220 "parser_cocci_menhir.ml" +# 20352 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_initialize2 = -# 1338 "parser_cocci_menhir.mly" +# 1362 "parser_cocci_menhir.mly" ( if P.struct_initializer _2 then let il = P.drop_dot_commas _2 in Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,il,P.clt2mcode "}" _3,false)) else Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,_2,P.clt2mcode "}" _3,true)) ) -# 20232 "parser_cocci_menhir.ml" +# 20364 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20258,17 +20390,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_initialize2 = Obj.magic _3 in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 20264 "parser_cocci_menhir.ml" +# 20396 "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 = -# 1346 "parser_cocci_menhir.mly" +# 1370 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.InitGccExt(_1,P.clt2mcode "=" _2,_3)) ) -# 20272 "parser_cocci_menhir.ml" +# 20404 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20298,17 +20430,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_initialize2 = Obj.magic _3 in let _2 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 20304 "parser_cocci_menhir.ml" +# 20436 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_mident = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_initialize2 = -# 1348 "parser_cocci_menhir.mly" +# 1372 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.InitGccName(_1,P.clt2mcode ":" _2,_3)) ) -# 20312 "parser_cocci_menhir.ml" +# 20444 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20327,17 +20459,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 133 "parser_cocci_menhir.mly" +# 135 "parser_cocci_menhir.mly" (Parse_aux.info) -# 20333 "parser_cocci_menhir.ml" +# 20465 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_initialize2 = -# 1350 "parser_cocci_menhir.mly" +# 1374 "parser_cocci_menhir.mly" (let (nm,pure,clt) = _1 in Ast0.wrap(Ast0.MetaInit(P.clt2mcode nm clt,pure)) ) -# 20341 "parser_cocci_menhir.ml" +# 20473 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20356,14 +20488,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 134 "parser_cocci_menhir.mly" +# 136 "parser_cocci_menhir.mly" (Parse_aux.list_info) -# 20362 "parser_cocci_menhir.ml" +# 20494 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_initialize2 = -# 1353 "parser_cocci_menhir.mly" +# 1377 "parser_cocci_menhir.mly" (let (nm,lenname,pure,clt) = _1 in let nm = P.clt2mcode nm clt in let lenname = @@ -20372,7 +20504,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct | Ast.MetaLen nm -> Ast0.MetaListLen(P.clt2mcode nm clt) | Ast.CstLen n -> Ast0.CstListLen n in Ast0.wrap(Ast0.MetaInitList(nm,lenname,pure)) ) -# 20376 "parser_cocci_menhir.ml" +# 20508 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20394,9 +20526,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_initialize_list = -# 1373 "parser_cocci_menhir.mly" +# 1397 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS(_1 P.mkidots (fun c -> Ast0.IComma c))) ) -# 20400 "parser_cocci_menhir.ml" +# 20532 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20416,9 +20548,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_invalid = -# 1453 "parser_cocci_menhir.mly" +# 1482 "parser_cocci_menhir.mly" ( raise (Semantic_cocci.Semantic "not matchable") ) -# 20422 "parser_cocci_menhir.ml" +# 20554 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20433,9 +20565,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 = -# 318 "parser_cocci_menhir.mly" +# 321 "parser_cocci_menhir.mly" ( false ) -# 20439 "parser_cocci_menhir.ml" +# 20571 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20455,9 +20587,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_is_expression = -# 319 "parser_cocci_menhir.mly" +# 322 "parser_cocci_menhir.mly" ( true ) -# 20461 "parser_cocci_menhir.ml" +# 20593 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20483,9 +20615,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_ctype_ = -# 2375 "parser_cocci_menhir.mly" +# 2411 "parser_cocci_menhir.mly" ( Common.Left t ) -# 20489 "parser_cocci_menhir.ml" +# 20621 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20511,9 +20643,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_ctype_ = -# 2376 "parser_cocci_menhir.mly" +# 2412 "parser_cocci_menhir.mly" ( Common.Right t ) -# 20517 "parser_cocci_menhir.ml" +# 20649 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20539,9 +20671,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_decl_var_ = -# 2375 "parser_cocci_menhir.mly" +# 2411 "parser_cocci_menhir.mly" ( Common.Left t ) -# 20545 "parser_cocci_menhir.ml" +# 20677 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20567,9 +20699,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_decl_var_ = -# 2376 "parser_cocci_menhir.mly" +# 2412 "parser_cocci_menhir.mly" ( Common.Right t ) -# 20573 "parser_cocci_menhir.ml" +# 20705 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20595,9 +20727,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_eexpr_ = -# 2375 "parser_cocci_menhir.mly" +# 2411 "parser_cocci_menhir.mly" ( Common.Left t ) -# 20601 "parser_cocci_menhir.ml" +# 20733 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20623,9 +20755,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_eexpr_ = -# 2376 "parser_cocci_menhir.mly" +# 2412 "parser_cocci_menhir.mly" ( Common.Right t ) -# 20629 "parser_cocci_menhir.ml" +# 20761 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20647,13 +20779,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let t : 'tv_nest_start = Obj.magic t in + let t : 'tv_iso_statement = Obj.magic t in let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in - let _v : 'tv_iso_nest_start_ = -# 2375 "parser_cocci_menhir.mly" + let _v : 'tv_iso_iso_statement_ = +# 2411 "parser_cocci_menhir.mly" ( Common.Left t ) -# 20657 "parser_cocci_menhir.ml" +# 20789 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20675,13 +20807,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let t : 'tv_nest_start = Obj.magic t in + let t : 'tv_iso_statement = Obj.magic t in let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in - let _v : 'tv_iso_nest_start_ = -# 2376 "parser_cocci_menhir.mly" + let _v : 'tv_iso_iso_statement_ = +# 2412 "parser_cocci_menhir.mly" ( Common.Right t ) -# 20685 "parser_cocci_menhir.ml" +# 20817 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20703,13 +20835,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let t : 'tv_single_statement = Obj.magic t in + let t : 'tv_nest_start = Obj.magic t in let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in - let _v : 'tv_iso_single_statement_ = -# 2375 "parser_cocci_menhir.mly" + let _v : 'tv_iso_nest_start_ = +# 2411 "parser_cocci_menhir.mly" ( Common.Left t ) -# 20713 "parser_cocci_menhir.ml" +# 20845 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20731,13 +20863,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let t : 'tv_single_statement = Obj.magic t in + let t : 'tv_nest_start = Obj.magic t in let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in - let _v : 'tv_iso_single_statement_ = -# 2376 "parser_cocci_menhir.mly" + let _v : 'tv_iso_nest_start_ = +# 2412 "parser_cocci_menhir.mly" ( Common.Right t ) -# 20741 "parser_cocci_menhir.ml" +# 20873 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20773,13 +20905,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 233 "parser_cocci_menhir.mly" +# 236 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) -# 20779 "parser_cocci_menhir.ml" +# 20911 "parser_cocci_menhir.ml" ) = -# 2343 "parser_cocci_menhir.mly" +# 2379 "parser_cocci_menhir.mly" ( let fn x = Ast0.ExprTag x in P.iso_adjust fn fn e1 el ) -# 20783 "parser_cocci_menhir.ml" +# 20915 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20815,13 +20947,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 233 "parser_cocci_menhir.mly" +# 236 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) -# 20821 "parser_cocci_menhir.ml" +# 20953 "parser_cocci_menhir.ml" ) = -# 2345 "parser_cocci_menhir.mly" +# 2381 "parser_cocci_menhir.mly" ( let fn x = Ast0.ArgExprTag x in P.iso_adjust fn fn e1 el ) -# 20825 "parser_cocci_menhir.ml" +# 20957 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20857,13 +20989,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 233 "parser_cocci_menhir.mly" +# 236 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) -# 20863 "parser_cocci_menhir.ml" +# 20995 "parser_cocci_menhir.ml" ) = -# 2347 "parser_cocci_menhir.mly" +# 2383 "parser_cocci_menhir.mly" ( let fn x = Ast0.TestExprTag x in P.iso_adjust fn fn e1 el ) -# 20867 "parser_cocci_menhir.ml" +# 20999 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20899,15 +21031,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 233 "parser_cocci_menhir.mly" +# 236 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) -# 20905 "parser_cocci_menhir.ml" +# 21037 "parser_cocci_menhir.ml" ) = -# 2349 "parser_cocci_menhir.mly" +# 2385 "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 ) -# 20911 "parser_cocci_menhir.ml" +# 21043 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20938,18 +21070,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; }; } = _menhir_stack in - let sl : 'tv_list_iso_single_statement__ = Obj.magic sl in - let s1 : 'tv_single_statement = Obj.magic s1 in + let sl : 'tv_list_iso_iso_statement__ = Obj.magic sl in + let s1 : 'tv_iso_statement = Obj.magic s1 in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 233 "parser_cocci_menhir.mly" +# 236 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) -# 20949 "parser_cocci_menhir.ml" +# 21081 "parser_cocci_menhir.ml" ) = -# 2353 "parser_cocci_menhir.mly" +# 2389 "parser_cocci_menhir.mly" ( let fn x = Ast0.StmtTag x in P.iso_adjust fn fn s1 sl ) -# 20953 "parser_cocci_menhir.ml" +# 21085 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20985,13 +21117,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 233 "parser_cocci_menhir.mly" +# 236 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) -# 20991 "parser_cocci_menhir.ml" +# 21123 "parser_cocci_menhir.ml" ) = -# 2355 "parser_cocci_menhir.mly" +# 2391 "parser_cocci_menhir.mly" ( let fn x = Ast0.TypeCTag x in P.iso_adjust fn fn t1 tl ) -# 20995 "parser_cocci_menhir.ml" +# 21127 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21027,13 +21159,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 233 "parser_cocci_menhir.mly" +# 236 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) -# 21033 "parser_cocci_menhir.ml" +# 21165 "parser_cocci_menhir.ml" ) = -# 2357 "parser_cocci_menhir.mly" +# 2393 "parser_cocci_menhir.mly" ( let fn x = Ast0.DotsStmtTag x in P.iso_adjust fn fn e1 el ) -# 21037 "parser_cocci_menhir.ml" +# 21169 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21069,11 +21201,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 233 "parser_cocci_menhir.mly" +# 236 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) -# 21075 "parser_cocci_menhir.ml" +# 21207 "parser_cocci_menhir.ml" ) = -# 2359 "parser_cocci_menhir.mly" +# 2395 "parser_cocci_menhir.mly" ( let check_one = function [x] -> x | _ -> @@ -21088,7 +21220,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 ) -# 21092 "parser_cocci_menhir.ml" +# 21224 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21110,13 +21242,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_m_ in let _endpos = _endpos_m_ in let _v : ( -# 236 "parser_cocci_menhir.mly" +# 239 "parser_cocci_menhir.mly" ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list) -# 21116 "parser_cocci_menhir.ml" +# 21248 "parser_cocci_menhir.ml" ) = -# 253 "parser_cocci_menhir.mly" +# 256 "parser_cocci_menhir.mly" ( m "" ) -# 21120 "parser_cocci_menhir.ml" +# 21252 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21142,13 +21274,65 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_nm_ in let _endpos = _endpos__2_ in let _v : ( -# 220 "parser_cocci_menhir.mly" +# 223 "parser_cocci_menhir.mly" (Ast_cocci.rulename) -# 21148 "parser_cocci_menhir.ml" +# 21280 "parser_cocci_menhir.ml" ) = -# 268 "parser_cocci_menhir.mly" +# 271 "parser_cocci_menhir.mly" ( P.make_iso_rule_name_result (P.id2name nm) ) -# 21152 "parser_cocci_menhir.ml" +# 21284 "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.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_statement = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_iso_statement = +# 1188 "parser_cocci_menhir.mly" + ( _1 ) +# 21308 "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.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_decl_var = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_iso_statement = +# 1190 "parser_cocci_menhir.mly" + ( match _1 with + [decl] -> + Ast0.wrap + (Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),decl)) + | _ -> failwith "exactly one decl allowed in statement iso" ) +# 21336 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21167,16 +21351,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) -# 21173 "parser_cocci_menhir.ml" +# 21357 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_iter_ident = -# 2016 "parser_cocci_menhir.mly" +# 2052 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) ) -# 21180 "parser_cocci_menhir.ml" +# 21364 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21195,17 +21379,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 130 "parser_cocci_menhir.mly" +# 132 "parser_cocci_menhir.mly" (Parse_aux.idinfo) -# 21201 "parser_cocci_menhir.ml" +# 21385 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_iter_ident = -# 2018 "parser_cocci_menhir.mly" +# 2054 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,Ast.NoVal,pure)) ) -# 21209 "parser_cocci_menhir.ml" +# 21393 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21222,7 +21406,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_TMul_ = # 114 "standard.mly" ( [] ) -# 21226 "parser_cocci_menhir.ml" +# 21410 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21247,16 +21431,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let xs : 'tv_list_TMul_ = Obj.magic xs in let x : ( -# 168 "parser_cocci_menhir.mly" +# 171 "parser_cocci_menhir.mly" (Data.clt) -# 21253 "parser_cocci_menhir.ml" +# 21437 "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 ) -# 21260 "parser_cocci_menhir.ml" +# 21444 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21273,7 +21457,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_array_dec_ = # 114 "standard.mly" ( [] ) -# 21277 "parser_cocci_menhir.ml" +# 21461 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21303,7 +21487,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_array_dec_ = # 116 "standard.mly" ( x :: xs ) -# 21307 "parser_cocci_menhir.ml" +# 21491 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21320,7 +21504,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_case_line_ = # 114 "standard.mly" ( [] ) -# 21324 "parser_cocci_menhir.ml" +# 21508 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21350,7 +21534,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_case_line_ = # 116 "standard.mly" ( x :: xs ) -# 21354 "parser_cocci_menhir.ml" +# 21538 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21367,7 +21551,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_decl_var_ = # 114 "standard.mly" ( [] ) -# 21371 "parser_cocci_menhir.ml" +# 21555 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21397,7 +21581,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_decl_var_ = # 116 "standard.mly" ( x :: xs ) -# 21401 "parser_cocci_menhir.ml" +# 21585 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21414,7 +21598,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_designator_ = # 114 "standard.mly" ( [] ) -# 21418 "parser_cocci_menhir.ml" +# 21602 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21444,7 +21628,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_designator_ = # 116 "standard.mly" ( x :: xs ) -# 21448 "parser_cocci_menhir.ml" +# 21632 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21461,7 +21645,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_incl_ = # 114 "standard.mly" ( [] ) -# 21465 "parser_cocci_menhir.ml" +# 21649 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21491,7 +21675,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_incl_ = # 116 "standard.mly" ( x :: xs ) -# 21495 "parser_cocci_menhir.ml" +# 21679 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21508,7 +21692,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_iso_ctype__ = # 114 "standard.mly" ( [] ) -# 21512 "parser_cocci_menhir.ml" +# 21696 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21538,7 +21722,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_iso_ctype__ = # 116 "standard.mly" ( x :: xs ) -# 21542 "parser_cocci_menhir.ml" +# 21726 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21555,7 +21739,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_iso_decl_var__ = # 114 "standard.mly" ( [] ) -# 21559 "parser_cocci_menhir.ml" +# 21743 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21585,7 +21769,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_iso_decl_var__ = # 116 "standard.mly" ( x :: xs ) -# 21589 "parser_cocci_menhir.ml" +# 21773 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21602,7 +21786,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_iso_eexpr__ = # 114 "standard.mly" ( [] ) -# 21606 "parser_cocci_menhir.ml" +# 21790 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21632,7 +21816,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_iso_eexpr__ = # 116 "standard.mly" ( x :: xs ) -# 21636 "parser_cocci_menhir.ml" +# 21820 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21646,10 +21830,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in - let _v : 'tv_list_iso_nest_start__ = + let _v : 'tv_list_iso_iso_statement__ = # 114 "standard.mly" ( [] ) -# 21653 "parser_cocci_menhir.ml" +# 21837 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21672,14 +21856,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : 'tv_list_iso_nest_start__ = Obj.magic xs in - let x : 'tv_iso_nest_start_ = Obj.magic x in + let xs : 'tv_list_iso_iso_statement__ = Obj.magic xs in + let x : 'tv_iso_iso_statement_ = Obj.magic x in let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in - let _v : 'tv_list_iso_nest_start__ = + let _v : 'tv_list_iso_iso_statement__ = # 116 "standard.mly" ( x :: xs ) -# 21683 "parser_cocci_menhir.ml" +# 21867 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21693,10 +21877,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in - let _v : 'tv_list_iso_single_statement__ = + let _v : 'tv_list_iso_nest_start__ = # 114 "standard.mly" ( [] ) -# 21700 "parser_cocci_menhir.ml" +# 21884 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21719,14 +21903,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : 'tv_list_iso_single_statement__ = Obj.magic xs in - let x : 'tv_iso_single_statement_ = Obj.magic x in + let xs : 'tv_list_iso_nest_start__ = Obj.magic xs in + let x : 'tv_iso_nest_start_ = Obj.magic x in let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in - let _v : 'tv_list_iso_single_statement__ = + let _v : 'tv_list_iso_nest_start__ = # 116 "standard.mly" ( x :: xs ) -# 21730 "parser_cocci_menhir.ml" +# 21914 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21743,7 +21927,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_ctype__ = # 114 "standard.mly" ( [] ) -# 21747 "parser_cocci_menhir.ml" +# 21931 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21773,7 +21957,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_ctype__ = # 116 "standard.mly" ( x :: xs ) -# 21777 "parser_cocci_menhir.ml" +# 21961 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21790,7 +21974,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_disj_ident__ = # 114 "standard.mly" ( [] ) -# 21794 "parser_cocci_menhir.ml" +# 21978 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21820,7 +22004,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_disj_ident__ = # 116 "standard.mly" ( x :: xs ) -# 21824 "parser_cocci_menhir.ml" +# 22008 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21837,7 +22021,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_eexpr__ = # 114 "standard.mly" ( [] ) -# 21841 "parser_cocci_menhir.ml" +# 22025 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21867,7 +22051,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_eexpr__ = # 116 "standard.mly" ( x :: xs ) -# 21871 "parser_cocci_menhir.ml" +# 22055 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21884,7 +22068,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_fun_after_dots_or__ = # 114 "standard.mly" ( [] ) -# 21888 "parser_cocci_menhir.ml" +# 22072 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21914,7 +22098,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_fun_after_dots_or__ = # 116 "standard.mly" ( x :: xs ) -# 21918 "parser_cocci_menhir.ml" +# 22102 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21931,7 +22115,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_fun_start__ = # 114 "standard.mly" ( [] ) -# 21935 "parser_cocci_menhir.ml" +# 22119 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21961,7 +22145,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_fun_start__ = # 116 "standard.mly" ( x :: xs ) -# 21965 "parser_cocci_menhir.ml" +# 22149 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21978,7 +22162,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_mctype__ = # 114 "standard.mly" ( [] ) -# 21982 "parser_cocci_menhir.ml" +# 22166 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22008,7 +22192,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_mctype__ = # 116 "standard.mly" ( x :: xs ) -# 22012 "parser_cocci_menhir.ml" +# 22196 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22025,7 +22209,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_rule_elem_statement__ = # 114 "standard.mly" ( [] ) -# 22029 "parser_cocci_menhir.ml" +# 22213 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22055,7 +22239,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_rule_elem_statement__ = # 116 "standard.mly" ( x :: xs ) -# 22059 "parser_cocci_menhir.ml" +# 22243 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22072,7 +22256,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_statement__ = # 114 "standard.mly" ( [] ) -# 22076 "parser_cocci_menhir.ml" +# 22260 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22102,7 +22286,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_statement__ = # 116 "standard.mly" ( x :: xs ) -# 22106 "parser_cocci_menhir.ml" +# 22290 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22119,7 +22303,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_struct_decl_one__ = # 114 "standard.mly" ( [] ) -# 22123 "parser_cocci_menhir.ml" +# 22307 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22149,7 +22333,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_struct_decl_one__ = # 116 "standard.mly" ( x :: xs ) -# 22153 "parser_cocci_menhir.ml" +# 22337 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22166,7 +22350,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_pair_edots_when_TEllipsis_eexpr__dexpr__ = # 114 "standard.mly" ( [] ) -# 22170 "parser_cocci_menhir.ml" +# 22354 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22205,13 +22389,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 70 "standard.mly" ( (x, y) ) -# 22209 "parser_cocci_menhir.ml" +# 22393 "parser_cocci_menhir.ml" in # 116 "standard.mly" ( x :: xs ) -# 22215 "parser_cocci_menhir.ml" +# 22399 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22228,7 +22412,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_whenppdecs_ = # 114 "standard.mly" ( [] ) -# 22232 "parser_cocci_menhir.ml" +# 22416 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22258,7 +22442,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_whenppdecs_ = # 116 "standard.mly" ( x :: xs ) -# 22262 "parser_cocci_menhir.ml" +# 22446 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22280,9 +22464,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_list_len = -# 422 "parser_cocci_menhir.mly" +# 425 "parser_cocci_menhir.mly" ( Common.Left _1 ) -# 22286 "parser_cocci_menhir.ml" +# 22470 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22301,16 +22485,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 22307 "parser_cocci_menhir.ml" +# 22491 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_list_len = -# 423 "parser_cocci_menhir.mly" +# 426 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Common.Right (int_of_string x) ) -# 22314 "parser_cocci_menhir.ml" +# 22498 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22327,7 +22511,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_loption_choose_iso_ = # 57 "standard.mly" ( [] ) -# 22331 "parser_cocci_menhir.ml" +# 22515 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22351,7 +22535,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_loption_choose_iso_ = # 59 "standard.mly" ( x ) -# 22355 "parser_cocci_menhir.ml" +# 22539 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22368,7 +22552,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_loption_disable_ = # 57 "standard.mly" ( [] ) -# 22372 "parser_cocci_menhir.ml" +# 22556 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22392,7 +22576,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_loption_disable_ = # 59 "standard.mly" ( x ) -# 22396 "parser_cocci_menhir.ml" +# 22580 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22409,7 +22593,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_loption_filespec_ = # 57 "standard.mly" ( [] ) -# 22413 "parser_cocci_menhir.ml" +# 22597 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22433,7 +22617,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_loption_filespec_ = # 59 "standard.mly" ( x ) -# 22437 "parser_cocci_menhir.ml" +# 22621 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22450,7 +22634,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_loption_minus_start_ = # 57 "standard.mly" ( [] ) -# 22454 "parser_cocci_menhir.ml" +# 22638 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22474,7 +22658,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_loption_minus_start_ = # 59 "standard.mly" ( x ) -# 22478 "parser_cocci_menhir.ml" +# 22662 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22491,7 +22675,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_loption_not_pos_ = # 57 "standard.mly" ( [] ) -# 22495 "parser_cocci_menhir.ml" +# 22679 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22515,7 +22699,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_loption_not_pos_ = # 59 "standard.mly" ( x ) -# 22519 "parser_cocci_menhir.ml" +# 22703 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22532,7 +22716,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_loption_plus_start_ = # 57 "standard.mly" ( [] ) -# 22536 "parser_cocci_menhir.ml" +# 22720 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22556,7 +22740,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_loption_plus_start_ = # 59 "standard.mly" ( x ) -# 22560 "parser_cocci_menhir.ml" +# 22744 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22575,16 +22759,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 133 "parser_cocci_menhir.mly" +# 135 "parser_cocci_menhir.mly" (Parse_aux.info) -# 22581 "parser_cocci_menhir.ml" +# 22765 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_mctype = -# 736 "parser_cocci_menhir.mly" +# 739 "parser_cocci_menhir.mly" ( tmeta_to_type _1 ) -# 22588 "parser_cocci_menhir.ml" +# 22772 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22606,9 +22790,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_mctype = -# 737 "parser_cocci_menhir.mly" +# 740 "parser_cocci_menhir.mly" (_1) -# 22612 "parser_cocci_menhir.ml" +# 22796 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22630,9 +22814,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_t_ in let _endpos = _endpos_t_ in let _v : 'tv_meta_exp_type = -# 617 "parser_cocci_menhir.mly" +# 620 "parser_cocci_menhir.mly" ( [Ast0_cocci.ast0_type_to_type t] ) -# 22636 "parser_cocci_menhir.ml" +# 22820 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22662,9 +22846,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_t_ in let _endpos = _endpos__3_ in let _v : 'tv_meta_exp_type = -# 619 "parser_cocci_menhir.mly" +# 622 "parser_cocci_menhir.mly" ( [Type_cocci.Array (Ast0_cocci.ast0_type_to_type t)] ) -# 22668 "parser_cocci_menhir.ml" +# 22852 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22700,11 +22884,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_m_ in let _v : 'tv_meta_exp_type = -# 621 "parser_cocci_menhir.mly" +# 624 "parser_cocci_menhir.mly" ( List.map (function x -> P.ty_pointerify (Ast0_cocci.ast0_type_to_type x) m) t ) -# 22708 "parser_cocci_menhir.ml" +# 22892 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22733,16 +22917,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_pure_ident = Obj.magic _3 in let _1 : ( -# 112 "parser_cocci_menhir.mly" +# 114 "parser_cocci_menhir.mly" (string) -# 22739 "parser_cocci_menhir.ml" +# 22923 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_meta_ident = -# 1740 "parser_cocci_menhir.mly" +# 1776 "parser_cocci_menhir.mly" ( (Some _1,P.id2name _3) ) -# 22746 "parser_cocci_menhir.ml" +# 22930 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22771,16 +22955,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_pure_ident_kwd = Obj.magic _3 in let _1 : ( -# 112 "parser_cocci_menhir.mly" +# 114 "parser_cocci_menhir.mly" (string) -# 22777 "parser_cocci_menhir.ml" +# 22961 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_meta_ident = -# 1741 "parser_cocci_menhir.mly" +# 1777 "parser_cocci_menhir.mly" ( (Some _1,_3) ) -# 22784 "parser_cocci_menhir.ml" +# 22968 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22802,13 +22986,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_m_ in let _endpos = _endpos_m_ in let _v : ( -# 228 "parser_cocci_menhir.mly" +# 231 "parser_cocci_menhir.mly" ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list) -# 22808 "parser_cocci_menhir.ml" +# 22992 "parser_cocci_menhir.ml" ) = -# 252 "parser_cocci_menhir.mly" +# 255 "parser_cocci_menhir.mly" ( m (!Ast0.rule_name) ) -# 22812 "parser_cocci_menhir.ml" +# 22996 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22851,17 +23035,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 434 "parser_cocci_menhir.mly" +# 437 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta -> let tok = check_meta(Ast.MetaMetaDecl(arity,name)) in !Data.add_meta_meta name pure; tok) ) -# 22859 "parser_cocci_menhir.ml" +# 23043 "parser_cocci_menhir.ml" in -# 342 "parser_cocci_menhir.mly" +# 345 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) -# 22865 "parser_cocci_menhir.ml" +# 23049 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22904,17 +23088,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 438 "parser_cocci_menhir.mly" +# 441 "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) ) -# 22912 "parser_cocci_menhir.ml" +# 23096 "parser_cocci_menhir.ml" in -# 342 "parser_cocci_menhir.mly" +# 345 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) -# 22918 "parser_cocci_menhir.ml" +# 23102 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22961,18 +23145,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__6_ in let _v : 'tv_metadec = let kindfn = -# 442 "parser_cocci_menhir.mly" +# 445 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta -> let len = Ast.AnyLen in let tok = check_meta(Ast.MetaParamListDecl(arity,name,len)) in !Data.add_paramlist_meta name len pure; tok) ) -# 22970 "parser_cocci_menhir.ml" +# 23154 "parser_cocci_menhir.ml" in -# 342 "parser_cocci_menhir.mly" +# 345 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) -# 22976 "parser_cocci_menhir.ml" +# 23160 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23019,18 +23203,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__6_ in let _v : 'tv_metadec = let kindfn = -# 447 "parser_cocci_menhir.mly" +# 450 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta -> let len = Ast.AnyLen in let tok = check_meta(Ast.MetaExpListDecl(arity,name,len)) in !Data.add_explist_meta name len pure; tok) ) -# 23028 "parser_cocci_menhir.ml" +# 23212 "parser_cocci_menhir.ml" in -# 342 "parser_cocci_menhir.mly" +# 345 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) -# 23034 "parser_cocci_menhir.ml" +# 23218 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23073,17 +23257,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 452 "parser_cocci_menhir.mly" +# 455 "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) ) -# 23081 "parser_cocci_menhir.ml" +# 23265 "parser_cocci_menhir.ml" in -# 342 "parser_cocci_menhir.mly" +# 345 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) -# 23087 "parser_cocci_menhir.ml" +# 23271 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23126,17 +23310,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 456 "parser_cocci_menhir.mly" +# 459 "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) ) -# 23134 "parser_cocci_menhir.ml" +# 23318 "parser_cocci_menhir.ml" in -# 342 "parser_cocci_menhir.mly" +# 345 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) -# 23140 "parser_cocci_menhir.ml" +# 23324 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23183,18 +23367,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__6_ in let _v : 'tv_metadec = let kindfn = -# 460 "parser_cocci_menhir.mly" +# 463 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta -> let len = Ast.AnyLen in let tok = check_meta(Ast.MetaInitListDecl(arity,name,len)) in !Data.add_initlist_meta name len pure; tok) ) -# 23192 "parser_cocci_menhir.ml" +# 23376 "parser_cocci_menhir.ml" in -# 342 "parser_cocci_menhir.mly" +# 345 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) -# 23198 "parser_cocci_menhir.ml" +# 23382 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23237,17 +23421,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 465 "parser_cocci_menhir.mly" +# 468 "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) ) -# 23245 "parser_cocci_menhir.ml" +# 23429 "parser_cocci_menhir.ml" in -# 342 "parser_cocci_menhir.mly" +# 345 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) -# 23251 "parser_cocci_menhir.ml" +# 23435 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23290,17 +23474,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 469 "parser_cocci_menhir.mly" +# 472 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta -> let tok = check_meta(Ast.MetaDeclDecl(arity,name)) in !Data.add_decl_meta name pure; tok) ) -# 23298 "parser_cocci_menhir.ml" +# 23482 "parser_cocci_menhir.ml" in -# 342 "parser_cocci_menhir.mly" +# 345 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) -# 23304 "parser_cocci_menhir.ml" +# 23488 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23343,17 +23527,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 473 "parser_cocci_menhir.mly" +# 476 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta -> let tok = check_meta(Ast.MetaFieldDecl(arity,name)) in !Data.add_field_meta name pure; tok) ) -# 23351 "parser_cocci_menhir.ml" +# 23535 "parser_cocci_menhir.ml" in -# 342 "parser_cocci_menhir.mly" +# 345 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) -# 23357 "parser_cocci_menhir.ml" +# 23541 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23400,18 +23584,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__6_ in let _v : 'tv_metadec = let kindfn = -# 477 "parser_cocci_menhir.mly" +# 480 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta -> let len = Ast.AnyLen in let tok = check_meta(Ast.MetaFieldListDecl(arity,name,len)) in !Data.add_field_list_meta name len pure; tok) ) -# 23409 "parser_cocci_menhir.ml" +# 23593 "parser_cocci_menhir.ml" in -# 342 "parser_cocci_menhir.mly" +# 345 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) -# 23415 "parser_cocci_menhir.ml" +# 23599 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23458,17 +23642,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__6_ in let _v : 'tv_metadec = let kindfn = -# 482 "parser_cocci_menhir.mly" +# 485 "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) ) -# 23466 "parser_cocci_menhir.ml" +# 23650 "parser_cocci_menhir.ml" in -# 342 "parser_cocci_menhir.mly" +# 345 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) -# 23472 "parser_cocci_menhir.ml" +# 23656 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23511,18 +23695,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 486 "parser_cocci_menhir.mly" +# 489 "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")) ) -# 23520 "parser_cocci_menhir.ml" +# 23704 "parser_cocci_menhir.ml" in -# 342 "parser_cocci_menhir.mly" +# 345 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) -# 23526 "parser_cocci_menhir.ml" +# 23710 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23569,18 +23753,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__6_ in let _v : 'tv_metadec = let kindfn = -# 491 "parser_cocci_menhir.mly" +# 494 "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")) ) -# 23578 "parser_cocci_menhir.ml" +# 23762 "parser_cocci_menhir.ml" in -# 342 "parser_cocci_menhir.mly" +# 345 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) -# 23584 "parser_cocci_menhir.ml" +# 23768 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23627,18 +23811,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__6_ in let _v : 'tv_metadec = let kindfn = -# 496 "parser_cocci_menhir.mly" +# 499 "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")) ) -# 23636 "parser_cocci_menhir.ml" +# 23820 "parser_cocci_menhir.ml" in -# 342 "parser_cocci_menhir.mly" +# 345 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) -# 23642 "parser_cocci_menhir.ml" +# 23826 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23673,17 +23857,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__4_ in let _v : 'tv_metadec = let kindfn = -# 427 "parser_cocci_menhir.mly" +# 430 "parser_cocci_menhir.mly" ( (fun name check_meta seed -> let tok = check_meta(Ast.MetaFreshIdDecl(name,seed)) in !Data.add_fresh_id_meta name seed; tok) ) -# 23681 "parser_cocci_menhir.ml" +# 23865 "parser_cocci_menhir.ml" in -# 345 "parser_cocci_menhir.mly" +# 348 "parser_cocci_menhir.mly" ( P.create_fresh_metadec kindfn ids ) -# 23687 "parser_cocci_menhir.ml" +# 23871 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23726,7 +23910,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 503 "parser_cocci_menhir.mly" +# 506 "parser_cocci_menhir.mly" ( let idfn arity name pure check_meta constraints = let tok = check_meta(Ast.MetaIdDecl(arity,name)) in @@ -23743,17 +23927,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) ) -# 23747 "parser_cocci_menhir.ml" +# 23931 "parser_cocci_menhir.ml" in -# 351 "parser_cocci_menhir.mly" +# 354 "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) ) -# 23757 "parser_cocci_menhir.ml" +# 23941 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23796,17 +23980,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 522 "parser_cocci_menhir.mly" +# 525 "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) ) -# 23804 "parser_cocci_menhir.ml" +# 23988 "parser_cocci_menhir.ml" in -# 360 "parser_cocci_menhir.mly" +# 363 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 23810 "parser_cocci_menhir.ml" +# 23994 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23853,18 +24037,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__6_ in let _v : 'tv_metadec = let kindfn = -# 526 "parser_cocci_menhir.mly" +# 529 "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) ) -# 23862 "parser_cocci_menhir.ml" +# 24046 "parser_cocci_menhir.ml" in -# 360 "parser_cocci_menhir.mly" +# 363 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 23868 "parser_cocci_menhir.ml" +# 24052 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23907,17 +24091,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 531 "parser_cocci_menhir.mly" +# 534 "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) ) -# 23915 "parser_cocci_menhir.ml" +# 24099 "parser_cocci_menhir.ml" in -# 360 "parser_cocci_menhir.mly" +# 363 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 23921 "parser_cocci_menhir.ml" +# 24105 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23960,17 +24144,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 535 "parser_cocci_menhir.mly" +# 538 "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) ) -# 23968 "parser_cocci_menhir.ml" +# 24152 "parser_cocci_menhir.ml" in -# 360 "parser_cocci_menhir.mly" +# 363 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 23974 "parser_cocci_menhir.ml" +# 24158 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24013,17 +24197,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 541 "parser_cocci_menhir.mly" +# 544 "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) ) -# 24021 "parser_cocci_menhir.ml" +# 24205 "parser_cocci_menhir.ml" in -# 365 "parser_cocci_menhir.mly" +# 368 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 24027 "parser_cocci_menhir.ml" +# 24211 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24076,11 +24260,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 24080 "parser_cocci_menhir.ml" +# 24264 "parser_cocci_menhir.ml" in -# 545 "parser_cocci_menhir.mly" +# 548 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> match l with None -> @@ -24089,13 +24273,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct | Some _ -> !Data.add_local_idexp_meta ty name constraints pure; check_meta(Ast.MetaLocalIdExpDecl(arity,name,ty))) ) -# 24093 "parser_cocci_menhir.ml" +# 24277 "parser_cocci_menhir.ml" in -# 365 "parser_cocci_menhir.mly" +# 368 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 24099 "parser_cocci_menhir.ml" +# 24283 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24156,11 +24340,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 24160 "parser_cocci_menhir.ml" +# 24344 "parser_cocci_menhir.ml" in -# 545 "parser_cocci_menhir.mly" +# 548 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> match l with None -> @@ -24169,13 +24353,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct | Some _ -> !Data.add_local_idexp_meta ty name constraints pure; check_meta(Ast.MetaLocalIdExpDecl(arity,name,ty))) ) -# 24173 "parser_cocci_menhir.ml" +# 24357 "parser_cocci_menhir.ml" in -# 365 "parser_cocci_menhir.mly" +# 368 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 24179 "parser_cocci_menhir.ml" +# 24363 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24232,7 +24416,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let m = m0 in let l = l0 in -# 554 "parser_cocci_menhir.mly" +# 557 "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 @@ -24242,13 +24426,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct | Some _ -> !Data.add_local_idexp_meta ty name constraints pure; check_meta(Ast.MetaLocalIdExpDecl(arity,name,ty))) ) -# 24246 "parser_cocci_menhir.ml" +# 24430 "parser_cocci_menhir.ml" in -# 365 "parser_cocci_menhir.mly" +# 368 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 24252 "parser_cocci_menhir.ml" +# 24436 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24298,18 +24482,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_metadec = let kindfn = let ty = ty0 in -# 564 "parser_cocci_menhir.mly" +# 567 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let ty = Some [ty] in let tok = check_meta(Ast.MetaExpDecl(arity,name,ty)) in !Data.add_exp_meta ty name constraints pure; tok) ) -# 24307 "parser_cocci_menhir.ml" +# 24491 "parser_cocci_menhir.ml" in -# 365 "parser_cocci_menhir.mly" +# 368 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 24313 "parser_cocci_menhir.ml" +# 24497 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24355,21 +24539,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 24359 "parser_cocci_menhir.ml" +# 24543 "parser_cocci_menhir.ml" in -# 569 "parser_cocci_menhir.mly" +# 572 "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) ) -# 24367 "parser_cocci_menhir.ml" +# 24551 "parser_cocci_menhir.ml" in -# 365 "parser_cocci_menhir.mly" +# 368 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 24373 "parser_cocci_menhir.ml" +# 24557 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24423,21 +24607,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 24427 "parser_cocci_menhir.ml" +# 24611 "parser_cocci_menhir.ml" in -# 569 "parser_cocci_menhir.mly" +# 572 "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) ) -# 24435 "parser_cocci_menhir.ml" +# 24619 "parser_cocci_menhir.ml" in -# 365 "parser_cocci_menhir.mly" +# 368 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 24441 "parser_cocci_menhir.ml" +# 24625 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24480,17 +24664,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 586 "parser_cocci_menhir.mly" +# 589 "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) ) -# 24488 "parser_cocci_menhir.ml" +# 24672 "parser_cocci_menhir.ml" in -# 370 "parser_cocci_menhir.mly" +# 373 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 24494 "parser_cocci_menhir.ml" +# 24678 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24536,7 +24720,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_metadec = let kindfn = let vl = vl0 in -# 590 "parser_cocci_menhir.mly" +# 593 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let ty = Some vl in (match constraints with @@ -24561,13 +24745,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) ) -# 24565 "parser_cocci_menhir.ml" +# 24749 "parser_cocci_menhir.ml" in -# 370 "parser_cocci_menhir.mly" +# 373 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 24571 "parser_cocci_menhir.ml" +# 24755 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24609,7 +24793,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_ar_ in let _endpos = _endpos__5_ in let _v : 'tv_metadec = -# 376 "parser_cocci_menhir.mly" +# 379 "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 = @@ -24617,7 +24801,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 ) -# 24621 "parser_cocci_menhir.ml" +# 24805 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24677,13 +24861,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_ar_ in let _endpos = _endpos__9_ in let _v : 'tv_metadec = -# 386 "parser_cocci_menhir.mly" +# 389 "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,lenname)) in !Data.add_paramlist_meta name lenname pure; tok) len ids ) -# 24687 "parser_cocci_menhir.ml" +# 24871 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24743,13 +24927,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_ar_ in let _endpos = _endpos__9_ in let _v : 'tv_metadec = -# 394 "parser_cocci_menhir.mly" +# 397 "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,lenname)) in !Data.add_explist_meta name lenname pure; tok) len ids ) -# 24753 "parser_cocci_menhir.ml" +# 24937 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24809,13 +24993,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_ar_ in let _endpos = _endpos__9_ in let _v : 'tv_metadec = -# 402 "parser_cocci_menhir.mly" +# 405 "parser_cocci_menhir.mly" ( P.create_len_metadec ar ispure (fun lenname arity name pure check_meta -> let tok = check_meta(Ast.MetaFieldListDecl(arity,name,lenname)) in !Data.add_field_list_meta name lenname pure; tok) len ids ) -# 24819 "parser_cocci_menhir.ml" +# 25003 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24875,13 +25059,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_ar_ in let _endpos = _endpos__9_ in let _v : 'tv_metadec = -# 410 "parser_cocci_menhir.mly" +# 413 "parser_cocci_menhir.mly" ( P.create_len_metadec ar ispure (fun lenname arity name pure check_meta -> let tok = check_meta(Ast.MetaInitListDecl(arity,name,lenname)) in !Data.add_initlist_meta name lenname pure; tok) len ids ) -# 24885 "parser_cocci_menhir.ml" +# 25069 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24911,12 +25095,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_metadec = -# 416 "parser_cocci_menhir.mly" +# 419 "parser_cocci_menhir.mly" ( (fun _ -> let add_sym = fun (nm,_) -> !Data.add_symbol_meta nm in List.iter add_sym ids; []) ) -# 24920 "parser_cocci_menhir.ml" +# 25104 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24938,9 +25122,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_mident = -# 1989 "parser_cocci_menhir.mly" +# 2025 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) ) -# 24944 "parser_cocci_menhir.ml" +# 25128 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24962,9 +25146,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_mident = -# 1990 "parser_cocci_menhir.mly" +# 2026 "parser_cocci_menhir.mly" ( _1 ) -# 24968 "parser_cocci_menhir.ml" +# 25152 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24983,16 +25167,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 133 "parser_cocci_menhir.mly" +# 135 "parser_cocci_menhir.mly" (Parse_aux.info) -# 24989 "parser_cocci_menhir.ml" +# 25173 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_mident = -# 1991 "parser_cocci_menhir.mly" +# 2027 "parser_cocci_menhir.mly" ( tmeta_to_ident _1 ) -# 24996 "parser_cocci_menhir.ml" +# 25180 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25011,17 +25195,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 128 "parser_cocci_menhir.mly" +# 130 "parser_cocci_menhir.mly" (Parse_aux.midinfo) -# 25017 "parser_cocci_menhir.ml" +# 25201 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_mident = -# 1993 "parser_cocci_menhir.mly" +# 2029 "parser_cocci_menhir.mly" ( let (nm,constraints,seed,pure,clt) = _1 in Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,seed,pure)) ) -# 25025 "parser_cocci_menhir.ml" +# 25209 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25049,9 +25233,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_midzero_list_ctype_ctype_ = -# 2313 "parser_cocci_menhir.mly" +# 2349 "parser_cocci_menhir.mly" ( let (mids,code) = List.split b in (mids,(a::code)) ) -# 25055 "parser_cocci_menhir.ml" +# 25239 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25079,9 +25263,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_midzero_list_disj_ident_disj_ident_ = -# 2313 "parser_cocci_menhir.mly" +# 2349 "parser_cocci_menhir.mly" ( let (mids,code) = List.split b in (mids,(a::code)) ) -# 25085 "parser_cocci_menhir.ml" +# 25269 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25109,9 +25293,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_midzero_list_eexpr_eexpr_ = -# 2313 "parser_cocci_menhir.mly" +# 2349 "parser_cocci_menhir.mly" ( let (mids,code) = List.split b in (mids,(a::code)) ) -# 25115 "parser_cocci_menhir.ml" +# 25299 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25139,9 +25323,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_midzero_list_expr_eexpr_ = -# 2313 "parser_cocci_menhir.mly" +# 2349 "parser_cocci_menhir.mly" ( let (mids,code) = List.split b in (mids,(a::code)) ) -# 25145 "parser_cocci_menhir.ml" +# 25329 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25169,9 +25353,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_ = -# 2313 "parser_cocci_menhir.mly" +# 2349 "parser_cocci_menhir.mly" ( let (mids,code) = List.split b in (mids,(a::code)) ) -# 25175 "parser_cocci_menhir.ml" +# 25359 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25199,9 +25383,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_ = -# 2313 "parser_cocci_menhir.mly" +# 2349 "parser_cocci_menhir.mly" ( let (mids,code) = List.split b in (mids,(a::code)) ) -# 25205 "parser_cocci_menhir.ml" +# 25389 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25229,9 +25413,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_midzero_list_mctype_mctype_ = -# 2313 "parser_cocci_menhir.mly" +# 2349 "parser_cocci_menhir.mly" ( let (mids,code) = List.split b in (mids,(a::code)) ) -# 25235 "parser_cocci_menhir.ml" +# 25419 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25259,9 +25443,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_ = -# 2313 "parser_cocci_menhir.mly" +# 2349 "parser_cocci_menhir.mly" ( let (mids,code) = List.split b in (mids,(a::code)) ) -# 25265 "parser_cocci_menhir.ml" +# 25449 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25289,9 +25473,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_midzero_list_statement_statement_ = -# 2313 "parser_cocci_menhir.mly" +# 2349 "parser_cocci_menhir.mly" ( let (mids,code) = List.split b in (mids,(a::code)) ) -# 25295 "parser_cocci_menhir.ml" +# 25479 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25319,9 +25503,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_midzero_list_struct_decl_one_struct_decl_one_ = -# 2313 "parser_cocci_menhir.mly" +# 2349 "parser_cocci_menhir.mly" ( let (mids,code) = List.split b in (mids,(a::code)) ) -# 25325 "parser_cocci_menhir.ml" +# 25509 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25349,11 +25533,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_f_ in let _endpos = _endpos_b_ in let _v : 'tv_minus_body = -# 843 "parser_cocci_menhir.mly" +# 846 "parser_cocci_menhir.mly" ( match f@b(*@ew*) with [] -> raise (Semantic_cocci.Semantic "minus slice can't be empty") | code -> code ) -# 25357 "parser_cocci_menhir.ml" +# 25541 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25381,11 +25565,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_f_ in let _endpos = _endpos_b_ in let _v : 'tv_minus_exp_body = -# 857 "parser_cocci_menhir.mly" +# 860 "parser_cocci_menhir.mly" ( match f@[b](*@ew*) with [] -> raise (Semantic_cocci.Semantic "minus slice can't be empty") | code -> code ) -# 25389 "parser_cocci_menhir.ml" +# 25573 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25411,13 +25595,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 208 "parser_cocci_menhir.mly" +# 211 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 25417 "parser_cocci_menhir.ml" +# 25601 "parser_cocci_menhir.ml" ) = -# 248 "parser_cocci_menhir.mly" +# 251 "parser_cocci_menhir.mly" ( _1 ) -# 25421 "parser_cocci_menhir.ml" +# 25605 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25443,13 +25627,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_m_ in let _endpos = _endpos__2_ in let _v : ( -# 208 "parser_cocci_menhir.mly" +# 211 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 25449 "parser_cocci_menhir.ml" +# 25633 "parser_cocci_menhir.ml" ) = -# 248 "parser_cocci_menhir.mly" +# 251 "parser_cocci_menhir.mly" ( m ) -# 25453 "parser_cocci_menhir.ml" +# 25637 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25475,13 +25659,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_m_ in let _endpos = _endpos__2_ in let _v : ( -# 208 "parser_cocci_menhir.mly" +# 211 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 25481 "parser_cocci_menhir.ml" +# 25665 "parser_cocci_menhir.ml" ) = -# 249 "parser_cocci_menhir.mly" +# 252 "parser_cocci_menhir.mly" ( m ) -# 25485 "parser_cocci_menhir.ml" +# 25669 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25507,13 +25691,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 205 "parser_cocci_menhir.mly" +# 208 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 25513 "parser_cocci_menhir.ml" +# 25697 "parser_cocci_menhir.ml" ) = -# 244 "parser_cocci_menhir.mly" +# 247 "parser_cocci_menhir.mly" ( _1 ) -# 25517 "parser_cocci_menhir.ml" +# 25701 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25539,13 +25723,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_m_ in let _endpos = _endpos__2_ in let _v : ( -# 205 "parser_cocci_menhir.mly" +# 208 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 25545 "parser_cocci_menhir.ml" +# 25729 "parser_cocci_menhir.ml" ) = -# 244 "parser_cocci_menhir.mly" +# 247 "parser_cocci_menhir.mly" ( m ) -# 25549 "parser_cocci_menhir.ml" +# 25733 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25571,13 +25755,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_m_ in let _endpos = _endpos__2_ in let _v : ( -# 205 "parser_cocci_menhir.mly" +# 208 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 25577 "parser_cocci_menhir.ml" +# 25761 "parser_cocci_menhir.ml" ) = -# 245 "parser_cocci_menhir.mly" +# 248 "parser_cocci_menhir.mly" ( m ) -# 25581 "parser_cocci_menhir.ml" +# 25765 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25599,9 +25783,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_minus_start = -# 2138 "parser_cocci_menhir.mly" +# 2174 "parser_cocci_menhir.mly" ( [Ast0.wrap(Ast0.OTHER(_1))] ) -# 25605 "parser_cocci_menhir.ml" +# 25789 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25623,9 +25807,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_minus_start = -# 2139 "parser_cocci_menhir.mly" +# 2175 "parser_cocci_menhir.mly" ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Ty(_1))))] ) -# 25629 "parser_cocci_menhir.ml" +# 25813 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25647,9 +25831,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_minus_start = -# 2140 "parser_cocci_menhir.mly" +# 2176 "parser_cocci_menhir.mly" ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.TopInit(_1))))] ) -# 25653 "parser_cocci_menhir.ml" +# 25837 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25671,9 +25855,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_minus_start = -# 2142 "parser_cocci_menhir.mly" +# 2178 "parser_cocci_menhir.mly" ( List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1 ) -# 25677 "parser_cocci_menhir.ml" +# 25861 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25698,16 +25882,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_ctype = Obj.magic b in let a : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 25704 "parser_cocci_menhir.ml" +# 25888 "parser_cocci_menhir.ml" ) = Obj.magic a in let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_mzl_ctype_ = -# 2316 "parser_cocci_menhir.mly" +# 2352 "parser_cocci_menhir.mly" ( (P.clt2mcode "|" a, b) ) -# 25711 "parser_cocci_menhir.ml" +# 25895 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25732,16 +25916,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_disj_ident = Obj.magic b in let a : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 25738 "parser_cocci_menhir.ml" +# 25922 "parser_cocci_menhir.ml" ) = Obj.magic a in let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_mzl_disj_ident_ = -# 2316 "parser_cocci_menhir.mly" +# 2352 "parser_cocci_menhir.mly" ( (P.clt2mcode "|" a, b) ) -# 25745 "parser_cocci_menhir.ml" +# 25929 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25766,16 +25950,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_eexpr = Obj.magic b in let a : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 25772 "parser_cocci_menhir.ml" +# 25956 "parser_cocci_menhir.ml" ) = Obj.magic a in let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_mzl_eexpr_ = -# 2316 "parser_cocci_menhir.mly" +# 2352 "parser_cocci_menhir.mly" ( (P.clt2mcode "|" a, b) ) -# 25779 "parser_cocci_menhir.ml" +# 25963 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25800,16 +25984,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_fun_after_dots_or = Obj.magic b in let a : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 25806 "parser_cocci_menhir.ml" +# 25990 "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_ = -# 2316 "parser_cocci_menhir.mly" +# 2352 "parser_cocci_menhir.mly" ( (P.clt2mcode "|" a, b) ) -# 25813 "parser_cocci_menhir.ml" +# 25997 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25834,16 +26018,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_fun_start = Obj.magic b in let a : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 25840 "parser_cocci_menhir.ml" +# 26024 "parser_cocci_menhir.ml" ) = Obj.magic a in let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_mzl_fun_start_ = -# 2316 "parser_cocci_menhir.mly" +# 2352 "parser_cocci_menhir.mly" ( (P.clt2mcode "|" a, b) ) -# 25847 "parser_cocci_menhir.ml" +# 26031 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25868,16 +26052,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_mctype = Obj.magic b in let a : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 25874 "parser_cocci_menhir.ml" +# 26058 "parser_cocci_menhir.ml" ) = Obj.magic a in let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_mzl_mctype_ = -# 2316 "parser_cocci_menhir.mly" +# 2352 "parser_cocci_menhir.mly" ( (P.clt2mcode "|" a, b) ) -# 25881 "parser_cocci_menhir.ml" +# 26065 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25902,16 +26086,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_rule_elem_statement = Obj.magic b in let a : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 25908 "parser_cocci_menhir.ml" +# 26092 "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_ = -# 2316 "parser_cocci_menhir.mly" +# 2352 "parser_cocci_menhir.mly" ( (P.clt2mcode "|" a, b) ) -# 25915 "parser_cocci_menhir.ml" +# 26099 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25936,16 +26120,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_statement = Obj.magic b in let a : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 25942 "parser_cocci_menhir.ml" +# 26126 "parser_cocci_menhir.ml" ) = Obj.magic a in let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_mzl_statement_ = -# 2316 "parser_cocci_menhir.mly" +# 2352 "parser_cocci_menhir.mly" ( (P.clt2mcode "|" a, b) ) -# 25949 "parser_cocci_menhir.ml" +# 26133 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25970,16 +26154,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_struct_decl_one = Obj.magic b in let a : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 25976 "parser_cocci_menhir.ml" +# 26160 "parser_cocci_menhir.ml" ) = Obj.magic a in let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_mzl_struct_decl_one_ = -# 2316 "parser_cocci_menhir.mly" +# 2352 "parser_cocci_menhir.mly" ( (P.clt2mcode "|" a, b) ) -# 25983 "parser_cocci_menhir.ml" +# 26167 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26001,9 +26185,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_name_opt_decl = -# 1083 "parser_cocci_menhir.mly" +# 1086 "parser_cocci_menhir.mly" ( _1 ) -# 26007 "parser_cocci_menhir.ml" +# 26191 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26052,43 +26236,43 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp1 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 26058 "parser_cocci_menhir.ml" +# 26242 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in let lp1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 26064 "parser_cocci_menhir.ml" +# 26248 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in let rp : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 26069 "parser_cocci_menhir.ml" +# 26253 "parser_cocci_menhir.ml" ) = Obj.magic rp in let s : ( -# 168 "parser_cocci_menhir.mly" +# 171 "parser_cocci_menhir.mly" (Data.clt) -# 26074 "parser_cocci_menhir.ml" +# 26258 "parser_cocci_menhir.ml" ) = Obj.magic s in let lp : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 26079 "parser_cocci_menhir.ml" +# 26263 "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 = -# 1086 "parser_cocci_menhir.mly" +# 1089 "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)) ) -# 26092 "parser_cocci_menhir.ml" +# 26276 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26116,9 +26300,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nest_after_dots = -# 2258 "parser_cocci_menhir.mly" +# 2294 "parser_cocci_menhir.mly" (_1@_2) -# 26122 "parser_cocci_menhir.ml" +# 26306 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26144,9 +26328,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nest_after_dots = -# 2259 "parser_cocci_menhir.mly" +# 2295 "parser_cocci_menhir.mly" (_2) -# 26150 "parser_cocci_menhir.ml" +# 26334 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26174,9 +26358,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nest_after_dots = -# 2260 "parser_cocci_menhir.mly" +# 2296 "parser_cocci_menhir.mly" ((Ast0.wrap(Ast0.Exp(_1)))::_2) -# 26180 "parser_cocci_menhir.ml" +# 26364 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26191,9 +26375,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 = -# 2268 "parser_cocci_menhir.mly" +# 2304 "parser_cocci_menhir.mly" ([]) -# 26197 "parser_cocci_menhir.ml" +# 26381 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26221,9 +26405,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nest_after_exp = -# 2269 "parser_cocci_menhir.mly" +# 2305 "parser_cocci_menhir.mly" (_1::_2) -# 26227 "parser_cocci_menhir.ml" +# 26411 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26238,9 +26422,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 = -# 2263 "parser_cocci_menhir.mly" +# 2299 "parser_cocci_menhir.mly" ([]) -# 26244 "parser_cocci_menhir.ml" +# 26428 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26268,9 +26452,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nest_after_stm = -# 2264 "parser_cocci_menhir.mly" +# 2300 "parser_cocci_menhir.mly" (_1::_2) -# 26274 "parser_cocci_menhir.ml" +# 26458 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26298,9 +26482,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nest_after_stm = -# 2265 "parser_cocci_menhir.mly" +# 2301 "parser_cocci_menhir.mly" (_1@_2) -# 26304 "parser_cocci_menhir.ml" +# 26488 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26329,24 +26513,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let c : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 26335 "parser_cocci_menhir.ml" +# 26519 "parser_cocci_menhir.ml" ) = Obj.magic c in let e : 'tv_expr_dots_TEllipsis_ = Obj.magic e in let _1 : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 26341 "parser_cocci_menhir.ml" +# 26525 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos_c_ in let _v : 'tv_nest_expressions = -# 1462 "parser_cocci_menhir.mly" +# 1491 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.NestExpr(P.clt2mcode "<..." _1, Ast0.wrap(Ast0.DOTS(e (P.mkedots "..."))), P.clt2mcode "...>" c, None, false)) ) -# 26350 "parser_cocci_menhir.ml" +# 26534 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26375,24 +26559,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let c : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 26381 "parser_cocci_menhir.ml" +# 26565 "parser_cocci_menhir.ml" ) = Obj.magic c in let e : 'tv_expr_dots_TEllipsis_ = Obj.magic e in let _1 : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 26387 "parser_cocci_menhir.ml" +# 26571 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos_c_ in let _v : 'tv_nest_expressions = -# 1466 "parser_cocci_menhir.mly" +# 1495 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.NestExpr(P.clt2mcode "<+..." _1, Ast0.wrap(Ast0.DOTS(e (P.mkedots "..."))), P.clt2mcode "...+>" c, None, true)) ) -# 26396 "parser_cocci_menhir.ml" +# 26580 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26411,16 +26595,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 133 "parser_cocci_menhir.mly" +# 135 "parser_cocci_menhir.mly" (Parse_aux.info) -# 26417 "parser_cocci_menhir.ml" +# 26601 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_nest_expressions = -# 1469 "parser_cocci_menhir.mly" +# 1498 "parser_cocci_menhir.mly" ( tmeta_to_exp _1 ) -# 26424 "parser_cocci_menhir.ml" +# 26608 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26442,9 +26626,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_nest_start = -# 2255 "parser_cocci_menhir.mly" +# 2291 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS(_1)) ) -# 26448 "parser_cocci_menhir.ml" +# 26632 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26464,13 +26648,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 239 "parser_cocci_menhir.mly" +# 242 "parser_cocci_menhir.mly" (unit) -# 26470 "parser_cocci_menhir.ml" +# 26654 "parser_cocci_menhir.ml" ) = -# 2383 "parser_cocci_menhir.mly" +# 2419 "parser_cocci_menhir.mly" ( () ) -# 26474 "parser_cocci_menhir.ml" +# 26658 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26494,13 +26678,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 239 "parser_cocci_menhir.mly" +# 242 "parser_cocci_menhir.mly" (unit) -# 26500 "parser_cocci_menhir.ml" +# 26684 "parser_cocci_menhir.ml" ) = -# 2384 "parser_cocci_menhir.mly" +# 2420 "parser_cocci_menhir.mly" ( () ) -# 26504 "parser_cocci_menhir.ml" +# 26688 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26520,13 +26704,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 239 "parser_cocci_menhir.mly" +# 242 "parser_cocci_menhir.mly" (unit) -# 26526 "parser_cocci_menhir.ml" +# 26710 "parser_cocci_menhir.ml" ) = -# 2385 "parser_cocci_menhir.mly" +# 2421 "parser_cocci_menhir.mly" ( () ) -# 26530 "parser_cocci_menhir.ml" +# 26714 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26554,10 +26738,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__ = -# 1702 "parser_cocci_menhir.mly" +# 1738 "parser_cocci_menhir.mly" ( function dot_builder -> g :: (List.concat(List.map (function (d,g) -> [dot_builder d;g]) dg)) ) -# 26561 "parser_cocci_menhir.ml" +# 26745 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26576,16 +26760,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let x : ( -# 168 "parser_cocci_menhir.mly" +# 171 "parser_cocci_menhir.mly" (Data.clt) -# 26582 "parser_cocci_menhir.ml" +# 26766 "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 ] ) -# 26589 "parser_cocci_menhir.ml" +# 26773 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26610,16 +26794,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let xs : 'tv_nonempty_list_TMul_ = Obj.magic xs in let x : ( -# 168 "parser_cocci_menhir.mly" +# 171 "parser_cocci_menhir.mly" (Data.clt) -# 26616 "parser_cocci_menhir.ml" +# 26800 "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 ) -# 26623 "parser_cocci_menhir.ml" +# 26807 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26641,9 +26825,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = -# 2065 "parser_cocci_menhir.mly" +# 2101 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [_1] ) -# 26647 "parser_cocci_menhir.ml" +# 26831 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26667,18 +26851,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 26673 "parser_cocci_menhir.ml" +# 26857 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_aexpr = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = -# 2067 "parser_cocci_menhir.mly" +# 2103 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] ) -# 26682 "parser_cocci_menhir.ml" +# 26866 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26708,19 +26892,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_nonempty_list_start_aexpr_TEllipsis_ = Obj.magic _3 in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 26714 "parser_cocci_menhir.ml" +# 26898 "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_nonempty_list_start_aexpr_TEllipsis_ = -# 2070 "parser_cocci_menhir.mly" +# 2106 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2))):: (_3 build_dots build_comma) ) -# 26724 "parser_cocci_menhir.ml" +# 26908 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26746,9 +26930,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = -# 2073 "parser_cocci_menhir.mly" +# 2109 "parser_cocci_menhir.mly" ( _2 ) -# 26752 "parser_cocci_menhir.ml" +# 26936 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26767,16 +26951,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 26773 "parser_cocci_menhir.ml" +# 26957 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = -# 2074 "parser_cocci_menhir.mly" +# 2110 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [(build_dots "..." d)] ) -# 26780 "parser_cocci_menhir.ml" +# 26964 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26800,22 +26984,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 26806 "parser_cocci_menhir.ml" +# 26990 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let d : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 26811 "parser_cocci_menhir.ml" +# 26995 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos__2_ in let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = -# 2076 "parser_cocci_menhir.mly" +# 2112 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [(build_dots "..." d);Ast0.wrap(build_comma(P.clt2mcode "," _2))] ) -# 26819 "parser_cocci_menhir.ml" +# 27003 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26845,24 +27029,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let r : 'tv_continue_list_aexpr_TEllipsis_ = Obj.magic r in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 26851 "parser_cocci_menhir.ml" +# 27035 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let d : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 26856 "parser_cocci_menhir.ml" +# 27040 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos_r_ in let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = -# 2079 "parser_cocci_menhir.mly" +# 2115 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> (build_dots "..." d):: (Ast0.wrap(build_comma(P.clt2mcode "," _2))):: (r build_dots build_comma) ) -# 26866 "parser_cocci_menhir.ml" +# 27050 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26884,9 +27068,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = -# 2065 "parser_cocci_menhir.mly" +# 2101 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [_1] ) -# 26890 "parser_cocci_menhir.ml" +# 27074 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26910,18 +27094,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 26916 "parser_cocci_menhir.ml" +# 27100 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_dparam = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = -# 2067 "parser_cocci_menhir.mly" +# 2103 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] ) -# 26925 "parser_cocci_menhir.ml" +# 27109 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26951,19 +27135,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_nonempty_list_start_dparam_TEllipsis_ = Obj.magic _3 in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 26957 "parser_cocci_menhir.ml" +# 27141 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_dparam = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = -# 2070 "parser_cocci_menhir.mly" +# 2106 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2))):: (_3 build_dots build_comma) ) -# 26967 "parser_cocci_menhir.ml" +# 27151 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26989,9 +27173,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = -# 2073 "parser_cocci_menhir.mly" +# 2109 "parser_cocci_menhir.mly" ( _2 ) -# 26995 "parser_cocci_menhir.ml" +# 27179 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27010,16 +27194,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 27016 "parser_cocci_menhir.ml" +# 27200 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = -# 2074 "parser_cocci_menhir.mly" +# 2110 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [(build_dots "..." d)] ) -# 27023 "parser_cocci_menhir.ml" +# 27207 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27043,22 +27227,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 27049 "parser_cocci_menhir.ml" +# 27233 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let d : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 27054 "parser_cocci_menhir.ml" +# 27238 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos__2_ in let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = -# 2076 "parser_cocci_menhir.mly" +# 2112 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [(build_dots "..." d);Ast0.wrap(build_comma(P.clt2mcode "," _2))] ) -# 27062 "parser_cocci_menhir.ml" +# 27246 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27088,24 +27272,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let r : 'tv_continue_list_dparam_TEllipsis_ = Obj.magic r in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 27094 "parser_cocci_menhir.ml" +# 27278 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let d : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 27099 "parser_cocci_menhir.ml" +# 27283 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos_r_ in let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = -# 2079 "parser_cocci_menhir.mly" +# 2115 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> (build_dots "..." d):: (Ast0.wrap(build_comma(P.clt2mcode "," _2))):: (r build_dots build_comma) ) -# 27109 "parser_cocci_menhir.ml" +# 27293 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27127,9 +27311,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = -# 2065 "parser_cocci_menhir.mly" +# 2101 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [_1] ) -# 27133 "parser_cocci_menhir.ml" +# 27317 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27153,18 +27337,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 27159 "parser_cocci_menhir.ml" +# 27343 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_enum_decl_one = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = -# 2067 "parser_cocci_menhir.mly" +# 2103 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] ) -# 27168 "parser_cocci_menhir.ml" +# 27352 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27194,19 +27378,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = Obj.magic _3 in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 27200 "parser_cocci_menhir.ml" +# 27384 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_enum_decl_one = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = -# 2070 "parser_cocci_menhir.mly" +# 2106 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2))):: (_3 build_dots build_comma) ) -# 27210 "parser_cocci_menhir.ml" +# 27394 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27232,9 +27416,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = -# 2073 "parser_cocci_menhir.mly" +# 2109 "parser_cocci_menhir.mly" ( _2 ) -# 27238 "parser_cocci_menhir.ml" +# 27422 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27256,9 +27440,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = -# 2074 "parser_cocci_menhir.mly" +# 2110 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [(build_dots "..." d)] ) -# 27262 "parser_cocci_menhir.ml" +# 27446 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27282,18 +27466,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 27288 "parser_cocci_menhir.ml" +# 27472 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let d : 'tv_edots_when_TEllipsis_enum_decl_one_ = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos__2_ in let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = -# 2076 "parser_cocci_menhir.mly" +# 2112 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [(build_dots "..." d);Ast0.wrap(build_comma(P.clt2mcode "," _2))] ) -# 27297 "parser_cocci_menhir.ml" +# 27481 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27323,20 +27507,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let r : 'tv_continue_list_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = Obj.magic r in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 27329 "parser_cocci_menhir.ml" +# 27513 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let d : 'tv_edots_when_TEllipsis_enum_decl_one_ = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos_r_ in let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = -# 2079 "parser_cocci_menhir.mly" +# 2115 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> (build_dots "..." d):: (Ast0.wrap(build_comma(P.clt2mcode "," _2))):: (r build_dots build_comma) ) -# 27340 "parser_cocci_menhir.ml" +# 27524 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27358,9 +27542,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = -# 2065 "parser_cocci_menhir.mly" +# 2101 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [_1] ) -# 27364 "parser_cocci_menhir.ml" +# 27548 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27384,18 +27568,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 27390 "parser_cocci_menhir.ml" +# 27574 "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_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = -# 2067 "parser_cocci_menhir.mly" +# 2103 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] ) -# 27399 "parser_cocci_menhir.ml" +# 27583 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27425,19 +27609,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = Obj.magic _3 in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 27431 "parser_cocci_menhir.ml" +# 27615 "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_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = -# 2070 "parser_cocci_menhir.mly" +# 2106 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2))):: (_3 build_dots build_comma) ) -# 27441 "parser_cocci_menhir.ml" +# 27625 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27463,9 +27647,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = -# 2073 "parser_cocci_menhir.mly" +# 2109 "parser_cocci_menhir.mly" ( _2 ) -# 27469 "parser_cocci_menhir.ml" +# 27653 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27487,9 +27671,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = -# 2074 "parser_cocci_menhir.mly" +# 2110 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [(build_dots "..." d)] ) -# 27493 "parser_cocci_menhir.ml" +# 27677 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27513,18 +27697,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 27519 "parser_cocci_menhir.ml" +# 27703 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let d : 'tv_edots_when_TEllipsis_initialize_ = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos__2_ in let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = -# 2076 "parser_cocci_menhir.mly" +# 2112 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [(build_dots "..." d);Ast0.wrap(build_comma(P.clt2mcode "," _2))] ) -# 27528 "parser_cocci_menhir.ml" +# 27712 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27554,20 +27738,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let r : 'tv_continue_list_initialize2_edots_when_TEllipsis_initialize__ = Obj.magic r in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 27560 "parser_cocci_menhir.ml" +# 27744 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let d : 'tv_edots_when_TEllipsis_initialize_ = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos_r_ in let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = -# 2079 "parser_cocci_menhir.mly" +# 2115 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> (build_dots "..." d):: (Ast0.wrap(build_comma(P.clt2mcode "," _2))):: (r build_dots build_comma) ) -# 27571 "parser_cocci_menhir.ml" +# 27755 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27589,9 +27773,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = -# 2065 "parser_cocci_menhir.mly" +# 2101 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [_1] ) -# 27595 "parser_cocci_menhir.ml" +# 27779 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27615,18 +27799,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 27621 "parser_cocci_menhir.ml" +# 27805 "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__2_ in let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = -# 2067 "parser_cocci_menhir.mly" +# 2103 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] ) -# 27630 "parser_cocci_menhir.ml" +# 27814 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27656,19 +27840,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = Obj.magic _3 in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 27662 "parser_cocci_menhir.ml" +# 27846 "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_nonempty_list_start_one_dec_decl__TEllipsis_ = -# 2070 "parser_cocci_menhir.mly" +# 2106 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2))):: (_3 build_dots build_comma) ) -# 27672 "parser_cocci_menhir.ml" +# 27856 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27694,9 +27878,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = -# 2073 "parser_cocci_menhir.mly" +# 2109 "parser_cocci_menhir.mly" ( _2 ) -# 27700 "parser_cocci_menhir.ml" +# 27884 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27715,16 +27899,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 27721 "parser_cocci_menhir.ml" +# 27905 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = -# 2074 "parser_cocci_menhir.mly" +# 2110 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [(build_dots "..." d)] ) -# 27728 "parser_cocci_menhir.ml" +# 27912 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27748,22 +27932,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 27754 "parser_cocci_menhir.ml" +# 27938 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let d : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 27759 "parser_cocci_menhir.ml" +# 27943 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos__2_ in let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = -# 2076 "parser_cocci_menhir.mly" +# 2112 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [(build_dots "..." d);Ast0.wrap(build_comma(P.clt2mcode "," _2))] ) -# 27767 "parser_cocci_menhir.ml" +# 27951 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27793,24 +27977,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let r : 'tv_continue_list_one_dec_decl__TEllipsis_ = Obj.magic r in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 27799 "parser_cocci_menhir.ml" +# 27983 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let d : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 27804 "parser_cocci_menhir.ml" +# 27988 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos_r_ in let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = -# 2079 "parser_cocci_menhir.mly" +# 2115 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> (build_dots "..." d):: (Ast0.wrap(build_comma(P.clt2mcode "," _2))):: (r build_dots build_comma) ) -# 27814 "parser_cocci_menhir.ml" +# 27998 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27832,9 +28016,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = -# 2065 "parser_cocci_menhir.mly" +# 2101 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [_1] ) -# 27838 "parser_cocci_menhir.ml" +# 28022 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27858,18 +28042,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 27864 "parser_cocci_menhir.ml" +# 28048 "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__2_ in let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = -# 2067 "parser_cocci_menhir.mly" +# 2103 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] ) -# 27873 "parser_cocci_menhir.ml" +# 28057 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27899,19 +28083,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = Obj.magic _3 in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 27905 "parser_cocci_menhir.ml" +# 28089 "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_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = -# 2070 "parser_cocci_menhir.mly" +# 2106 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2))):: (_3 build_dots build_comma) ) -# 27915 "parser_cocci_menhir.ml" +# 28099 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27937,9 +28121,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = -# 2073 "parser_cocci_menhir.mly" +# 2109 "parser_cocci_menhir.mly" ( _2 ) -# 27943 "parser_cocci_menhir.ml" +# 28127 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27958,16 +28142,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 27964 "parser_cocci_menhir.ml" +# 28148 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = -# 2074 "parser_cocci_menhir.mly" +# 2110 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [(build_dots "..." d)] ) -# 27971 "parser_cocci_menhir.ml" +# 28155 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27991,22 +28175,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 27997 "parser_cocci_menhir.ml" +# 28181 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let d : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 28002 "parser_cocci_menhir.ml" +# 28186 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos__2_ in let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = -# 2076 "parser_cocci_menhir.mly" +# 2112 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> [(build_dots "..." d);Ast0.wrap(build_comma(P.clt2mcode "," _2))] ) -# 28010 "parser_cocci_menhir.ml" +# 28194 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28036,24 +28220,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let r : 'tv_continue_list_one_dec_name_opt_decl__TEllipsis_ = Obj.magic r in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 28042 "parser_cocci_menhir.ml" +# 28226 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let d : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 28047 "parser_cocci_menhir.ml" +# 28231 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos_r_ in let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = -# 2079 "parser_cocci_menhir.mly" +# 2115 "parser_cocci_menhir.mly" ( fun build_dots build_comma -> (build_dots "..." d):: (Ast0.wrap(build_comma(P.clt2mcode "," _2))):: (r build_dots build_comma) ) -# 28057 "parser_cocci_menhir.ml" +# 28241 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28079,13 +28263,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_i_ in let _v : 'tv_not_ceq = -# 1898 "parser_cocci_menhir.mly" +# 1934 "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] ) -# 28089 "parser_cocci_menhir.ml" +# 28273 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28119,13 +28303,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_not_ceq = -# 1904 "parser_cocci_menhir.mly" +# 1940 "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 ) -# 28129 "parser_cocci_menhir.ml" +# 28313 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28147,9 +28331,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_ceq_ in let _endpos = _endpos_ceq_ in let _v : 'tv_not_ceq_or_sub = -# 1874 "parser_cocci_menhir.mly" +# 1910 "parser_cocci_menhir.mly" (Ast0.NotExpCstrt ceq) -# 28153 "parser_cocci_menhir.ml" +# 28337 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28171,9 +28355,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : 'tv_not_ceq_or_sub = -# 1875 "parser_cocci_menhir.mly" +# 1911 "parser_cocci_menhir.mly" (Ast0.SubExpCstrt s) -# 28177 "parser_cocci_menhir.ml" +# 28361 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28199,14 +28383,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_i_ in let _v : 'tv_not_eqe = -# 1879 "parser_cocci_menhir.mly" +# 1915 "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))))] ) -# 28210 "parser_cocci_menhir.ml" +# 28394 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28240,7 +28424,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_not_eqe = -# 1886 "parser_cocci_menhir.mly" +# 1922 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating @@ -28250,7 +28434,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct Ast0.wrap(Ast0.Ident(Ast0.wrap(Ast0.Id(P.id2mcode i))))) l ) -# 28254 "parser_cocci_menhir.ml" +# 28438 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28276,7 +28460,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_i_ in let _v : 'tv_not_eqid = -# 1836 "parser_cocci_menhir.mly" +# 1872 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating @@ -28290,7 +28474,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (function mv -> Ast.MetaIdDecl(Ast.NONE,mv)) in Ast.IdNegIdSet([],[i]) | (None,i) -> Ast.IdNegIdSet([i],[])) ) -# 28294 "parser_cocci_menhir.ml" +# 28478 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28324,7 +28508,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_not_eqid = -# 1850 "parser_cocci_menhir.mly" +# 1886 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating @@ -28342,7 +28526,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct ([],[]) l in Ast.IdNegIdSet(str,meta) ) -# 28346 "parser_cocci_menhir.ml" +# 28530 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28368,7 +28552,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_i_ in let _v : 'tv_not_pos = -# 1943 "parser_cocci_menhir.mly" +# 1979 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating @@ -28377,7 +28561,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct P.check_inherited_constraint i (function mv -> Ast.MetaPosDecl(Ast.NONE,mv)) in [i] ) -# 28381 "parser_cocci_menhir.ml" +# 28565 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28411,7 +28595,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_not_pos = -# 1952 "parser_cocci_menhir.mly" +# 1988 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating @@ -28421,7 +28605,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct P.check_inherited_constraint i (function mv -> Ast.MetaPosDecl(Ast.NONE,mv))) l ) -# 28425 "parser_cocci_menhir.ml" +# 28609 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28443,9 +28627,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_one_dec_decl_ = -# 2040 "parser_cocci_menhir.mly" +# 2076 "parser_cocci_menhir.mly" ( _1 ) -# 28449 "parser_cocci_menhir.ml" +# 28633 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28464,14 +28648,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 134 "parser_cocci_menhir.mly" +# 136 "parser_cocci_menhir.mly" (Parse_aux.list_info) -# 28470 "parser_cocci_menhir.ml" +# 28654 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_one_dec_decl_ = -# 2042 "parser_cocci_menhir.mly" +# 2078 "parser_cocci_menhir.mly" ( let (nm,lenname,pure,clt) = _1 in let nm = P.clt2mcode nm clt in let lenname = @@ -28480,7 +28664,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct | Ast.MetaLen nm -> Ast0.MetaListLen(P.clt2mcode nm clt) | Ast.CstLen n -> Ast0.CstListLen n in Ast0.wrap(Ast0.MetaParamList(nm,lenname,pure)) ) -# 28484 "parser_cocci_menhir.ml" +# 28668 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28502,9 +28686,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_ = -# 2040 "parser_cocci_menhir.mly" +# 2076 "parser_cocci_menhir.mly" ( _1 ) -# 28508 "parser_cocci_menhir.ml" +# 28692 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28523,14 +28707,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 134 "parser_cocci_menhir.mly" +# 136 "parser_cocci_menhir.mly" (Parse_aux.list_info) -# 28529 "parser_cocci_menhir.ml" +# 28713 "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_ = -# 2042 "parser_cocci_menhir.mly" +# 2078 "parser_cocci_menhir.mly" ( let (nm,lenname,pure,clt) = _1 in let nm = P.clt2mcode nm clt in let lenname = @@ -28539,7 +28723,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct | Ast.MetaLen nm -> Ast0.MetaListLen(P.clt2mcode nm clt) | Ast.CstLen n -> Ast0.CstListLen n in Ast0.wrap(Ast0.MetaParamList(nm,lenname,pure)) ) -# 28543 "parser_cocci_menhir.ml" +# 28727 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28563,17 +28747,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 28569 "parser_cocci_menhir.ml" +# 28753 "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 = -# 1263 "parser_cocci_menhir.mly" +# 1281 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.TyDecl(t,P.clt2mcode ";" pv)) ) -# 28577 "parser_cocci_menhir.ml" +# 28761 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28592,16 +28776,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 133 "parser_cocci_menhir.mly" +# 135 "parser_cocci_menhir.mly" (Parse_aux.info) -# 28598 "parser_cocci_menhir.ml" +# 28782 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_one_decl_var = -# 1264 "parser_cocci_menhir.mly" +# 1282 "parser_cocci_menhir.mly" ( P.meta_decl _1 ) -# 28605 "parser_cocci_menhir.ml" +# 28789 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28630,9 +28814,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 28636 "parser_cocci_menhir.ml" +# 28820 "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 @@ -28642,14 +28826,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 28646 "parser_cocci_menhir.ml" +# 28830 "parser_cocci_menhir.ml" in -# 1266 "parser_cocci_menhir.mly" +# 1284 "parser_cocci_menhir.mly" ( let (id,fn) = d in Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) ) -# 28653 "parser_cocci_menhir.ml" +# 28837 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28683,9 +28867,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 28689 "parser_cocci_menhir.ml" +# 28873 "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 @@ -28697,14 +28881,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 28701 "parser_cocci_menhir.ml" +# 28885 "parser_cocci_menhir.ml" in -# 1266 "parser_cocci_menhir.mly" +# 1284 "parser_cocci_menhir.mly" ( let (id,fn) = d in Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) ) -# 28708 "parser_cocci_menhir.ml" +# 28892 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28726,9 +28910,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_f_ in let _endpos = _endpos_f_ in let _v : 'tv_one_decl_var = -# 1268 "parser_cocci_menhir.mly" +# 1286 "parser_cocci_menhir.mly" ( f ) -# 28732 "parser_cocci_menhir.ml" +# 28916 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28767,15 +28951,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 28773 "parser_cocci_menhir.ml" +# 28957 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 28779 "parser_cocci_menhir.ml" +# 28963 "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 @@ -28785,14 +28969,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 28789 "parser_cocci_menhir.ml" +# 28973 "parser_cocci_menhir.ml" in -# 1270 "parser_cocci_menhir.mly" +# 1288 "parser_cocci_menhir.mly" ( let (id,fn) = d in Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv)) ) -# 28796 "parser_cocci_menhir.ml" +# 28980 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28836,15 +29020,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 28842 "parser_cocci_menhir.ml" +# 29026 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 28848 "parser_cocci_menhir.ml" +# 29032 "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 @@ -28856,14 +29040,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 28860 "parser_cocci_menhir.ml" +# 29044 "parser_cocci_menhir.ml" in -# 1270 "parser_cocci_menhir.mly" +# 1288 "parser_cocci_menhir.mly" ( let (id,fn) = d in Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv)) ) -# 28867 "parser_cocci_menhir.ml" +# 29051 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28892,9 +29076,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 28898 "parser_cocci_menhir.ml" +# 29082 "parser_cocci_menhir.ml" ) = Obj.magic pv in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident_or_symbol = Obj.magic i in @@ -28904,22 +29088,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 28908 "parser_cocci_menhir.ml" +# 29092 "parser_cocci_menhir.ml" in let s = # 39 "standard.mly" ( None ) -# 28915 "parser_cocci_menhir.ml" +# 29099 "parser_cocci_menhir.ml" in -# 1275 "parser_cocci_menhir.mly" +# 1293 "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)) ) -# 28923 "parser_cocci_menhir.ml" +# 29107 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28953,9 +29137,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 28959 "parser_cocci_menhir.ml" +# 29143 "parser_cocci_menhir.ml" ) = Obj.magic pv in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident_or_symbol = Obj.magic i in @@ -28967,22 +29151,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 28971 "parser_cocci_menhir.ml" +# 29155 "parser_cocci_menhir.ml" in let s = # 39 "standard.mly" ( None ) -# 28978 "parser_cocci_menhir.ml" +# 29162 "parser_cocci_menhir.ml" in -# 1275 "parser_cocci_menhir.mly" +# 1293 "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)) ) -# 28986 "parser_cocci_menhir.ml" +# 29170 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29016,9 +29200,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 29022 "parser_cocci_menhir.ml" +# 29206 "parser_cocci_menhir.ml" ) = Obj.magic pv in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident_or_symbol = Obj.magic i in @@ -29029,7 +29213,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 29033 "parser_cocci_menhir.ml" +# 29217 "parser_cocci_menhir.ml" in let s = @@ -29037,15 +29221,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 29041 "parser_cocci_menhir.ml" +# 29225 "parser_cocci_menhir.ml" in -# 1275 "parser_cocci_menhir.mly" +# 1293 "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)) ) -# 29049 "parser_cocci_menhir.ml" +# 29233 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29084,9 +29268,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 29090 "parser_cocci_menhir.ml" +# 29274 "parser_cocci_menhir.ml" ) = Obj.magic pv in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident_or_symbol = Obj.magic i in @@ -29099,7 +29283,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 29103 "parser_cocci_menhir.ml" +# 29287 "parser_cocci_menhir.ml" in let s = @@ -29107,15 +29291,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 29111 "parser_cocci_menhir.ml" +# 29295 "parser_cocci_menhir.ml" in -# 1275 "parser_cocci_menhir.mly" +# 1293 "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)) ) -# 29119 "parser_cocci_menhir.ml" +# 29303 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29154,15 +29338,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 29160 "parser_cocci_menhir.ml" +# 29344 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 29166 "parser_cocci_menhir.ml" +# 29350 "parser_cocci_menhir.ml" ) = Obj.magic q in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident_or_symbol = Obj.magic i in @@ -29172,24 +29356,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 29176 "parser_cocci_menhir.ml" +# 29360 "parser_cocci_menhir.ml" in let s = # 39 "standard.mly" ( None ) -# 29183 "parser_cocci_menhir.ml" +# 29367 "parser_cocci_menhir.ml" in -# 1280 "parser_cocci_menhir.mly" +# 1298 "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)) ) -# 29193 "parser_cocci_menhir.ml" +# 29377 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29233,15 +29417,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 29239 "parser_cocci_menhir.ml" +# 29423 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 29245 "parser_cocci_menhir.ml" +# 29429 "parser_cocci_menhir.ml" ) = Obj.magic q in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident_or_symbol = Obj.magic i in @@ -29253,24 +29437,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 29257 "parser_cocci_menhir.ml" +# 29441 "parser_cocci_menhir.ml" in let s = # 39 "standard.mly" ( None ) -# 29264 "parser_cocci_menhir.ml" +# 29448 "parser_cocci_menhir.ml" in -# 1280 "parser_cocci_menhir.mly" +# 1298 "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)) ) -# 29274 "parser_cocci_menhir.ml" +# 29458 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29314,15 +29498,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 29320 "parser_cocci_menhir.ml" +# 29504 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 29326 "parser_cocci_menhir.ml" +# 29510 "parser_cocci_menhir.ml" ) = Obj.magic q in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident_or_symbol = Obj.magic i in @@ -29333,7 +29517,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 29337 "parser_cocci_menhir.ml" +# 29521 "parser_cocci_menhir.ml" in let s = @@ -29341,17 +29525,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 29345 "parser_cocci_menhir.ml" +# 29529 "parser_cocci_menhir.ml" in -# 1280 "parser_cocci_menhir.mly" +# 1298 "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)) ) -# 29355 "parser_cocci_menhir.ml" +# 29539 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29400,15 +29584,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 29406 "parser_cocci_menhir.ml" +# 29590 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 29412 "parser_cocci_menhir.ml" +# 29596 "parser_cocci_menhir.ml" ) = Obj.magic q in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident_or_symbol = Obj.magic i in @@ -29421,7 +29605,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 29425 "parser_cocci_menhir.ml" +# 29609 "parser_cocci_menhir.ml" in let s = @@ -29429,17 +29613,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 29433 "parser_cocci_menhir.ml" +# 29617 "parser_cocci_menhir.ml" in -# 1280 "parser_cocci_menhir.mly" +# 1298 "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)) ) -# 29443 "parser_cocci_menhir.ml" +# 29627 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29498,36 +29682,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 29504 "parser_cocci_menhir.ml" +# 29688 "parser_cocci_menhir.ml" ) = Obj.magic pv in let rp2 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 29509 "parser_cocci_menhir.ml" +# 29693 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 29515 "parser_cocci_menhir.ml" +# 29699 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 29520 "parser_cocci_menhir.ml" +# 29704 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 168 "parser_cocci_menhir.mly" +# 171 "parser_cocci_menhir.mly" (Data.clt) -# 29526 "parser_cocci_menhir.ml" +# 29710 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 29531 "parser_cocci_menhir.ml" +# 29715 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in let t : 'tv_ctype = Obj.magic t in let _startpos = _startpos_t_ in @@ -29536,11 +29720,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 29540 "parser_cocci_menhir.ml" +# 29724 "parser_cocci_menhir.ml" in -# 1290 "parser_cocci_menhir.mly" +# 1308 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -29548,7 +29732,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)) ) -# 29552 "parser_cocci_menhir.ml" +# 29736 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29612,36 +29796,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 29618 "parser_cocci_menhir.ml" +# 29802 "parser_cocci_menhir.ml" ) = Obj.magic pv in let rp2 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 29623 "parser_cocci_menhir.ml" +# 29807 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 29629 "parser_cocci_menhir.ml" +# 29813 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 29634 "parser_cocci_menhir.ml" +# 29818 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 168 "parser_cocci_menhir.mly" +# 171 "parser_cocci_menhir.mly" (Data.clt) -# 29640 "parser_cocci_menhir.ml" +# 29824 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 29645 "parser_cocci_menhir.ml" +# 29829 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in let t : 'tv_ctype = Obj.magic t in let x0 : 'tv_storage = Obj.magic x0 in @@ -29652,11 +29836,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 29656 "parser_cocci_menhir.ml" +# 29840 "parser_cocci_menhir.ml" in -# 1290 "parser_cocci_menhir.mly" +# 1308 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -29664,7 +29848,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)) ) -# 29668 "parser_cocci_menhir.ml" +# 29852 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29703,29 +29887,109 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _5 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 29709 "parser_cocci_menhir.ml" +# 29893 "parser_cocci_menhir.ml" ) = Obj.magic _5 in let _4 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 29714 "parser_cocci_menhir.ml" +# 29898 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr_list_option = Obj.magic _3 in let _2 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 29720 "parser_cocci_menhir.ml" +# 29904 "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 = -# 1298 "parser_cocci_menhir.mly" +# 1316 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.MacroDecl(_1,P.clt2mcode "(" _2,_3, P.clt2mcode ")" _4,P.clt2mcode ";" _5)) ) -# 29729 "parser_cocci_menhir.ml" +# 29913 "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 = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = q; + MenhirLib.EngineTypes.startp = _startpos_q_; + MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + } = _menhir_stack in + let _7 : ( +# 179 "parser_cocci_menhir.mly" + (Data.clt) +# 29964 "parser_cocci_menhir.ml" + ) = Obj.magic _7 in + let e : 'tv_initialize = Obj.magic e in + let q : ( +# 179 "parser_cocci_menhir.mly" + (Data.clt) +# 29970 "parser_cocci_menhir.ml" + ) = Obj.magic q in + let _4 : ( +# 149 "parser_cocci_menhir.mly" + (Data.clt) +# 29975 "parser_cocci_menhir.ml" + ) = Obj.magic _4 in + let _3 : 'tv_eexpr_list_option = Obj.magic _3 in + let _2 : ( +# 148 "parser_cocci_menhir.mly" + (Data.clt) +# 29981 "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__7_ in + let _v : 'tv_one_decl_var = +# 1319 "parser_cocci_menhir.mly" + ( Ast0.wrap + (Ast0.MacroDeclInit + (_1,P.clt2mcode "(" _2,_3, + P.clt2mcode ")" _4,P.clt2mcode "=" q,e, + P.clt2mcode ";" _7)) ) +# 29993 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29794,42 +30058,42 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 29800 "parser_cocci_menhir.ml" +# 30064 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 29806 "parser_cocci_menhir.ml" +# 30070 "parser_cocci_menhir.ml" ) = Obj.magic q in let rp2 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 29811 "parser_cocci_menhir.ml" +# 30075 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 29817 "parser_cocci_menhir.ml" +# 30081 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 29822 "parser_cocci_menhir.ml" +# 30086 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 168 "parser_cocci_menhir.mly" +# 171 "parser_cocci_menhir.mly" (Data.clt) -# 29828 "parser_cocci_menhir.ml" +# 30092 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 29833 "parser_cocci_menhir.ml" +# 30097 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in let t : 'tv_ctype = Obj.magic t in let _startpos = _startpos_t_ in @@ -29838,11 +30102,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 29842 "parser_cocci_menhir.ml" +# 30106 "parser_cocci_menhir.ml" in -# 1304 "parser_cocci_menhir.mly" +# 1328 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -29850,7 +30114,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))) -# 29854 "parser_cocci_menhir.ml" +# 30118 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29924,42 +30188,42 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 29930 "parser_cocci_menhir.ml" +# 30194 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 29936 "parser_cocci_menhir.ml" +# 30200 "parser_cocci_menhir.ml" ) = Obj.magic q in let rp2 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 29941 "parser_cocci_menhir.ml" +# 30205 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 29947 "parser_cocci_menhir.ml" +# 30211 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 29952 "parser_cocci_menhir.ml" +# 30216 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 168 "parser_cocci_menhir.mly" +# 171 "parser_cocci_menhir.mly" (Data.clt) -# 29958 "parser_cocci_menhir.ml" +# 30222 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 29963 "parser_cocci_menhir.ml" +# 30227 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in let t : 'tv_ctype = Obj.magic t in let x0 : 'tv_storage = Obj.magic x0 in @@ -29970,11 +30234,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 29974 "parser_cocci_menhir.ml" +# 30238 "parser_cocci_menhir.ml" in -# 1304 "parser_cocci_menhir.mly" +# 1328 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -29982,7 +30246,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))) -# 29986 "parser_cocci_menhir.ml" +# 30250 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29999,7 +30263,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_TLocal_ = # 29 "standard.mly" ( None ) -# 30003 "parser_cocci_menhir.ml" +# 30267 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30023,7 +30287,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_TLocal_ = # 31 "standard.mly" ( Some x ) -# 30027 "parser_cocci_menhir.ml" +# 30291 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30040,7 +30304,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_TPosAny_ = # 29 "standard.mly" ( None ) -# 30044 "parser_cocci_menhir.ml" +# 30308 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30064,7 +30328,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_TPosAny_ = # 31 "standard.mly" ( Some x ) -# 30068 "parser_cocci_menhir.ml" +# 30332 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30081,7 +30345,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_eexpr_ = # 29 "standard.mly" ( None ) -# 30085 "parser_cocci_menhir.ml" +# 30349 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30105,7 +30369,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_eexpr_ = # 31 "standard.mly" ( Some x ) -# 30109 "parser_cocci_menhir.ml" +# 30373 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30122,7 +30386,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_expr_ = # 29 "standard.mly" ( None ) -# 30126 "parser_cocci_menhir.ml" +# 30390 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30146,7 +30410,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_expr_ = # 31 "standard.mly" ( Some x ) -# 30150 "parser_cocci_menhir.ml" +# 30414 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30163,7 +30427,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_not_ceq_or_sub_ = # 29 "standard.mly" ( None ) -# 30167 "parser_cocci_menhir.ml" +# 30431 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30187,7 +30451,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_not_ceq_or_sub_ = # 31 "standard.mly" ( Some x ) -# 30191 "parser_cocci_menhir.ml" +# 30455 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30204,7 +30468,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_re_or_not_eqe_or_sub_ = # 29 "standard.mly" ( None ) -# 30208 "parser_cocci_menhir.ml" +# 30472 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30228,7 +30492,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_re_or_not_eqe_or_sub_ = # 31 "standard.mly" ( Some x ) -# 30232 "parser_cocci_menhir.ml" +# 30496 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30245,7 +30509,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_re_or_not_eqid_ = # 29 "standard.mly" ( None ) -# 30249 "parser_cocci_menhir.ml" +# 30513 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30269,7 +30533,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_re_or_not_eqid_ = # 31 "standard.mly" ( Some x ) -# 30273 "parser_cocci_menhir.ml" +# 30537 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30284,9 +30548,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 = -# 2205 "parser_cocci_menhir.mly" +# 2241 "parser_cocci_menhir.mly" ([]) -# 30290 "parser_cocci_menhir.ml" +# 30554 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30312,9 +30576,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_after_dots = -# 2206 "parser_cocci_menhir.mly" +# 2242 "parser_cocci_menhir.mly" (_2) -# 30318 "parser_cocci_menhir.ml" +# 30582 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30342,9 +30606,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_after_dots = -# 2208 "parser_cocci_menhir.mly" +# 2244 "parser_cocci_menhir.mly" ( (Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))))::_2 ) -# 30348 "parser_cocci_menhir.ml" +# 30612 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30372,9 +30636,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_after_dots = -# 2209 "parser_cocci_menhir.mly" +# 2245 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.OTHER(_1))::_2 ) -# 30378 "parser_cocci_menhir.ml" +# 30642 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30402,9 +30666,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_after_dots = -# 2211 "parser_cocci_menhir.mly" +# 2247 "parser_cocci_menhir.mly" ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 ) -# 30408 "parser_cocci_menhir.ml" +# 30672 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30419,9 +30683,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 = -# 2201 "parser_cocci_menhir.mly" +# 2237 "parser_cocci_menhir.mly" ([]) -# 30425 "parser_cocci_menhir.ml" +# 30689 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30449,9 +30713,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_after_exp = -# 2202 "parser_cocci_menhir.mly" +# 2238 "parser_cocci_menhir.mly" ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 ) -# 30455 "parser_cocci_menhir.ml" +# 30719 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30466,9 +30730,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 = -# 2214 "parser_cocci_menhir.mly" +# 2250 "parser_cocci_menhir.mly" ([]) -# 30472 "parser_cocci_menhir.ml" +# 30736 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30496,9 +30760,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_after_stm = -# 2215 "parser_cocci_menhir.mly" +# 2251 "parser_cocci_menhir.mly" ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 ) -# 30502 "parser_cocci_menhir.ml" +# 30766 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30526,9 +30790,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_after_stm = -# 2216 "parser_cocci_menhir.mly" +# 2252 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.OTHER(_1))::_2 ) -# 30532 "parser_cocci_menhir.ml" +# 30796 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30556,9 +30820,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_after_stm = -# 2218 "parser_cocci_menhir.mly" +# 2254 "parser_cocci_menhir.mly" ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 ) -# 30562 "parser_cocci_menhir.ml" +# 30826 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30586,9 +30850,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_f_ in let _endpos = _endpos_b_ in let _v : 'tv_plus_body = -# 851 "parser_cocci_menhir.mly" +# 854 "parser_cocci_menhir.mly" ( f@b(*@ew*) ) -# 30592 "parser_cocci_menhir.ml" +# 30856 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30616,9 +30880,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_f_ in let _endpos = _endpos_b_ in let _v : 'tv_plus_exp_body = -# 865 "parser_cocci_menhir.mly" +# 868 "parser_cocci_menhir.mly" ( f@[b](*@ew*) ) -# 30622 "parser_cocci_menhir.ml" +# 30886 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30644,13 +30908,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 214 "parser_cocci_menhir.mly" +# 217 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 30650 "parser_cocci_menhir.ml" +# 30914 "parser_cocci_menhir.ml" ) = -# 250 "parser_cocci_menhir.mly" +# 253 "parser_cocci_menhir.mly" ( _1 ) -# 30654 "parser_cocci_menhir.ml" +# 30918 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30676,13 +30940,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_p_ in let _endpos = _endpos__2_ in let _v : ( -# 214 "parser_cocci_menhir.mly" +# 217 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 30682 "parser_cocci_menhir.ml" +# 30946 "parser_cocci_menhir.ml" ) = -# 250 "parser_cocci_menhir.mly" +# 253 "parser_cocci_menhir.mly" ( p ) -# 30686 "parser_cocci_menhir.ml" +# 30950 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30708,13 +30972,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_p_ in let _endpos = _endpos__2_ in let _v : ( -# 214 "parser_cocci_menhir.mly" +# 217 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 30714 "parser_cocci_menhir.ml" +# 30978 "parser_cocci_menhir.ml" ) = -# 251 "parser_cocci_menhir.mly" +# 254 "parser_cocci_menhir.mly" ( p ) -# 30718 "parser_cocci_menhir.ml" +# 30982 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30740,13 +31004,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 211 "parser_cocci_menhir.mly" +# 214 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 30746 "parser_cocci_menhir.ml" +# 31010 "parser_cocci_menhir.ml" ) = -# 246 "parser_cocci_menhir.mly" +# 249 "parser_cocci_menhir.mly" ( _1 ) -# 30750 "parser_cocci_menhir.ml" +# 31014 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30772,13 +31036,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_p_ in let _endpos = _endpos__2_ in let _v : ( -# 211 "parser_cocci_menhir.mly" +# 214 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 30778 "parser_cocci_menhir.ml" +# 31042 "parser_cocci_menhir.ml" ) = -# 246 "parser_cocci_menhir.mly" +# 249 "parser_cocci_menhir.mly" ( p ) -# 30782 "parser_cocci_menhir.ml" +# 31046 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30804,13 +31068,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_p_ in let _endpos = _endpos__2_ in let _v : ( -# 211 "parser_cocci_menhir.mly" +# 214 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 30810 "parser_cocci_menhir.ml" +# 31074 "parser_cocci_menhir.ml" ) = -# 247 "parser_cocci_menhir.mly" +# 250 "parser_cocci_menhir.mly" ( p ) -# 30814 "parser_cocci_menhir.ml" +# 31078 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30832,9 +31096,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_plus_start = -# 2190 "parser_cocci_menhir.mly" +# 2226 "parser_cocci_menhir.mly" ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Ty(_1))))] ) -# 30838 "parser_cocci_menhir.ml" +# 31102 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30856,9 +31120,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_plus_start = -# 2191 "parser_cocci_menhir.mly" +# 2227 "parser_cocci_menhir.mly" ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.TopInit(_1))))] ) -# 30862 "parser_cocci_menhir.ml" +# 31126 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30886,9 +31150,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_start = -# 2193 "parser_cocci_menhir.mly" +# 2229 "parser_cocci_menhir.mly" ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 ) -# 30892 "parser_cocci_menhir.ml" +# 31156 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30916,9 +31180,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_start = -# 2195 "parser_cocci_menhir.mly" +# 2231 "parser_cocci_menhir.mly" ( (Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))))::_2 ) -# 30922 "parser_cocci_menhir.ml" +# 31186 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30946,9 +31210,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_start = -# 2196 "parser_cocci_menhir.mly" +# 2232 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.OTHER(_1))::_2 ) -# 30952 "parser_cocci_menhir.ml" +# 31216 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30976,9 +31240,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_start = -# 2198 "parser_cocci_menhir.mly" +# 2234 "parser_cocci_menhir.mly" ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 ) -# 30982 "parser_cocci_menhir.ml" +# 31246 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31000,9 +31264,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_ = -# 1618 "parser_cocci_menhir.mly" +# 1654 "parser_cocci_menhir.mly" ( _1 ) -# 31006 "parser_cocci_menhir.ml" +# 31270 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31036,24 +31300,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _4 : ( -# 171 "parser_cocci_menhir.mly" +# 174 "parser_cocci_menhir.mly" (Data.clt) -# 31042 "parser_cocci_menhir.ml" +# 31306 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr = Obj.magic _3 in let _2 : ( -# 171 "parser_cocci_menhir.mly" +# 174 "parser_cocci_menhir.mly" (Data.clt) -# 31048 "parser_cocci_menhir.ml" +# 31312 "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_ = -# 1620 "parser_cocci_menhir.mly" +# 1656 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3, P.clt2mcode "]" _4)) ) -# 31057 "parser_cocci_menhir.ml" +# 31321 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31083,17 +31347,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_disj_ident = Obj.magic _3 in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 31089 "parser_cocci_menhir.ml" +# 31353 "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_ = -# 1623 "parser_cocci_menhir.mly" +# 1659 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) ) -# 31097 "parser_cocci_menhir.ml" +# 31361 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31123,18 +31387,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_disj_ident = Obj.magic _3 in let _2 : ( -# 173 "parser_cocci_menhir.mly" +# 176 "parser_cocci_menhir.mly" (Data.clt) -# 31129 "parser_cocci_menhir.ml" +# 31393 "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_ = -# 1625 "parser_cocci_menhir.mly" +# 1661 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2, _3)) ) -# 31138 "parser_cocci_menhir.ml" +# 31402 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31158,17 +31422,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 154 "parser_cocci_menhir.mly" +# 157 "parser_cocci_menhir.mly" (Data.clt) -# 31164 "parser_cocci_menhir.ml" +# 31428 "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_ = -# 1628 "parser_cocci_menhir.mly" +# 1664 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) ) -# 31172 "parser_cocci_menhir.ml" +# 31436 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31192,17 +31456,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 154 "parser_cocci_menhir.mly" +# 157 "parser_cocci_menhir.mly" (Data.clt) -# 31198 "parser_cocci_menhir.ml" +# 31462 "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_ = -# 1630 "parser_cocci_menhir.mly" +# 1666 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) ) -# 31206 "parser_cocci_menhir.ml" +# 31470 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31236,25 +31500,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _4 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 31242 "parser_cocci_menhir.ml" +# 31506 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr_list_option = Obj.magic _3 in let _2 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 31248 "parser_cocci_menhir.ml" +# 31512 "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_ = -# 1632 "parser_cocci_menhir.mly" +# 1668 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2, _3, P.clt2mcode ")" _4)) ) -# 31258 "parser_cocci_menhir.ml" +# 31522 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31298,31 +31562,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _6 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 31304 "parser_cocci_menhir.ml" +# 31568 "parser_cocci_menhir.ml" ) = Obj.magic _6 in let _5 : 'tv_initialize_list = Obj.magic _5 in let _4 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 31310 "parser_cocci_menhir.ml" +# 31574 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 31315 "parser_cocci_menhir.ml" +# 31579 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_ctype = Obj.magic _2 in let _1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 31321 "parser_cocci_menhir.ml" +# 31585 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = -# 1638 "parser_cocci_menhir.mly" +# 1674 "parser_cocci_menhir.mly" ( let init = if P.struct_initializer _5 then @@ -31334,7 +31598,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (Ast0.InitList(P.clt2mcode "{" _4,_5,P.clt2mcode "}" _6,true)) in Ast0.wrap (Ast0.Constructor(P.clt2mcode "(" _1, _2, P.clt2mcode ")" _3, init)) ) -# 31338 "parser_cocci_menhir.ml" +# 31602 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31356,9 +31620,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_postfix_expr_eexpr_invalid_ = -# 1618 "parser_cocci_menhir.mly" +# 1654 "parser_cocci_menhir.mly" ( _1 ) -# 31362 "parser_cocci_menhir.ml" +# 31626 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31392,24 +31656,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _4 : ( -# 171 "parser_cocci_menhir.mly" +# 174 "parser_cocci_menhir.mly" (Data.clt) -# 31398 "parser_cocci_menhir.ml" +# 31662 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr = Obj.magic _3 in let _2 : ( -# 171 "parser_cocci_menhir.mly" +# 174 "parser_cocci_menhir.mly" (Data.clt) -# 31404 "parser_cocci_menhir.ml" +# 31668 "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_ = -# 1620 "parser_cocci_menhir.mly" +# 1656 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3, P.clt2mcode "]" _4)) ) -# 31413 "parser_cocci_menhir.ml" +# 31677 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31439,17 +31703,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_disj_ident = Obj.magic _3 in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 31445 "parser_cocci_menhir.ml" +# 31709 "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_ = -# 1623 "parser_cocci_menhir.mly" +# 1659 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) ) -# 31453 "parser_cocci_menhir.ml" +# 31717 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31479,18 +31743,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_disj_ident = Obj.magic _3 in let _2 : ( -# 173 "parser_cocci_menhir.mly" +# 176 "parser_cocci_menhir.mly" (Data.clt) -# 31485 "parser_cocci_menhir.ml" +# 31749 "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_ = -# 1625 "parser_cocci_menhir.mly" +# 1661 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2, _3)) ) -# 31494 "parser_cocci_menhir.ml" +# 31758 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31514,17 +31778,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 154 "parser_cocci_menhir.mly" +# 157 "parser_cocci_menhir.mly" (Data.clt) -# 31520 "parser_cocci_menhir.ml" +# 31784 "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_ = -# 1628 "parser_cocci_menhir.mly" +# 1664 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) ) -# 31528 "parser_cocci_menhir.ml" +# 31792 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31548,17 +31812,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 154 "parser_cocci_menhir.mly" +# 157 "parser_cocci_menhir.mly" (Data.clt) -# 31554 "parser_cocci_menhir.ml" +# 31818 "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_ = -# 1630 "parser_cocci_menhir.mly" +# 1666 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) ) -# 31562 "parser_cocci_menhir.ml" +# 31826 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31592,25 +31856,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _4 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 31598 "parser_cocci_menhir.ml" +# 31862 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr_list_option = Obj.magic _3 in let _2 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 31604 "parser_cocci_menhir.ml" +# 31868 "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_ = -# 1632 "parser_cocci_menhir.mly" +# 1668 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2, _3, P.clt2mcode ")" _4)) ) -# 31614 "parser_cocci_menhir.ml" +# 31878 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31654,31 +31918,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _6 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 31660 "parser_cocci_menhir.ml" +# 31924 "parser_cocci_menhir.ml" ) = Obj.magic _6 in let _5 : 'tv_initialize_list = Obj.magic _5 in let _4 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 31666 "parser_cocci_menhir.ml" +# 31930 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 31671 "parser_cocci_menhir.ml" +# 31935 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_ctype = Obj.magic _2 in let _1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 31677 "parser_cocci_menhir.ml" +# 31941 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in let _v : 'tv_postfix_expr_eexpr_invalid_ = -# 1638 "parser_cocci_menhir.mly" +# 1674 "parser_cocci_menhir.mly" ( let init = if P.struct_initializer _5 then @@ -31690,7 +31954,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (Ast0.InitList(P.clt2mcode "{" _4,_5,P.clt2mcode "}" _6,true)) in Ast0.wrap (Ast0.Constructor(P.clt2mcode "(" _1, _2, P.clt2mcode ")" _3, init)) ) -# 31694 "parser_cocci_menhir.ml" +# 31958 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31712,9 +31976,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_ = -# 1618 "parser_cocci_menhir.mly" +# 1654 "parser_cocci_menhir.mly" ( _1 ) -# 31718 "parser_cocci_menhir.ml" +# 31982 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31748,24 +32012,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _4 : ( -# 171 "parser_cocci_menhir.mly" +# 174 "parser_cocci_menhir.mly" (Data.clt) -# 31754 "parser_cocci_menhir.ml" +# 32018 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr = Obj.magic _3 in let _2 : ( -# 171 "parser_cocci_menhir.mly" +# 174 "parser_cocci_menhir.mly" (Data.clt) -# 31760 "parser_cocci_menhir.ml" +# 32024 "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_ = -# 1620 "parser_cocci_menhir.mly" +# 1656 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3, P.clt2mcode "]" _4)) ) -# 31769 "parser_cocci_menhir.ml" +# 32033 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31795,17 +32059,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_disj_ident = Obj.magic _3 in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 31801 "parser_cocci_menhir.ml" +# 32065 "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_ = -# 1623 "parser_cocci_menhir.mly" +# 1659 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) ) -# 31809 "parser_cocci_menhir.ml" +# 32073 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31835,18 +32099,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_disj_ident = Obj.magic _3 in let _2 : ( -# 173 "parser_cocci_menhir.mly" +# 176 "parser_cocci_menhir.mly" (Data.clt) -# 31841 "parser_cocci_menhir.ml" +# 32105 "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_ = -# 1625 "parser_cocci_menhir.mly" +# 1661 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2, _3)) ) -# 31850 "parser_cocci_menhir.ml" +# 32114 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31870,17 +32134,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 154 "parser_cocci_menhir.mly" +# 157 "parser_cocci_menhir.mly" (Data.clt) -# 31876 "parser_cocci_menhir.ml" +# 32140 "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_ = -# 1628 "parser_cocci_menhir.mly" +# 1664 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) ) -# 31884 "parser_cocci_menhir.ml" +# 32148 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31904,17 +32168,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 154 "parser_cocci_menhir.mly" +# 157 "parser_cocci_menhir.mly" (Data.clt) -# 31910 "parser_cocci_menhir.ml" +# 32174 "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_ = -# 1630 "parser_cocci_menhir.mly" +# 1666 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) ) -# 31918 "parser_cocci_menhir.ml" +# 32182 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31948,25 +32212,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _4 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 31954 "parser_cocci_menhir.ml" +# 32218 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr_list_option = Obj.magic _3 in let _2 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 31960 "parser_cocci_menhir.ml" +# 32224 "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_ = -# 1632 "parser_cocci_menhir.mly" +# 1668 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2, _3, P.clt2mcode ")" _4)) ) -# 31970 "parser_cocci_menhir.ml" +# 32234 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32010,31 +32274,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _6 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 32016 "parser_cocci_menhir.ml" +# 32280 "parser_cocci_menhir.ml" ) = Obj.magic _6 in let _5 : 'tv_initialize_list = Obj.magic _5 in let _4 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 32022 "parser_cocci_menhir.ml" +# 32286 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 32027 "parser_cocci_menhir.ml" +# 32291 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_ctype = Obj.magic _2 in let _1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 32033 "parser_cocci_menhir.ml" +# 32297 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = -# 1638 "parser_cocci_menhir.mly" +# 1674 "parser_cocci_menhir.mly" ( let init = if P.struct_initializer _5 then @@ -32046,7 +32310,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (Ast0.InitList(P.clt2mcode "{" _4,_5,P.clt2mcode "}" _6,true)) in Ast0.wrap (Ast0.Constructor(P.clt2mcode "(" _1, _2, P.clt2mcode ")" _3, init)) ) -# 32050 "parser_cocci_menhir.ml" +# 32314 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32068,9 +32332,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_postfix_expr_expr_invalid_ = -# 1618 "parser_cocci_menhir.mly" +# 1654 "parser_cocci_menhir.mly" ( _1 ) -# 32074 "parser_cocci_menhir.ml" +# 32338 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32104,24 +32368,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _4 : ( -# 171 "parser_cocci_menhir.mly" +# 174 "parser_cocci_menhir.mly" (Data.clt) -# 32110 "parser_cocci_menhir.ml" +# 32374 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr = Obj.magic _3 in let _2 : ( -# 171 "parser_cocci_menhir.mly" +# 174 "parser_cocci_menhir.mly" (Data.clt) -# 32116 "parser_cocci_menhir.ml" +# 32380 "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_ = -# 1620 "parser_cocci_menhir.mly" +# 1656 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3, P.clt2mcode "]" _4)) ) -# 32125 "parser_cocci_menhir.ml" +# 32389 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32151,17 +32415,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_disj_ident = Obj.magic _3 in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 32157 "parser_cocci_menhir.ml" +# 32421 "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_ = -# 1623 "parser_cocci_menhir.mly" +# 1659 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) ) -# 32165 "parser_cocci_menhir.ml" +# 32429 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32191,18 +32455,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_disj_ident = Obj.magic _3 in let _2 : ( -# 173 "parser_cocci_menhir.mly" +# 176 "parser_cocci_menhir.mly" (Data.clt) -# 32197 "parser_cocci_menhir.ml" +# 32461 "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_ = -# 1625 "parser_cocci_menhir.mly" +# 1661 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2, _3)) ) -# 32206 "parser_cocci_menhir.ml" +# 32470 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32226,17 +32490,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 154 "parser_cocci_menhir.mly" +# 157 "parser_cocci_menhir.mly" (Data.clt) -# 32232 "parser_cocci_menhir.ml" +# 32496 "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_ = -# 1628 "parser_cocci_menhir.mly" +# 1664 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) ) -# 32240 "parser_cocci_menhir.ml" +# 32504 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32260,17 +32524,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 154 "parser_cocci_menhir.mly" +# 157 "parser_cocci_menhir.mly" (Data.clt) -# 32266 "parser_cocci_menhir.ml" +# 32530 "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_ = -# 1630 "parser_cocci_menhir.mly" +# 1666 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) ) -# 32274 "parser_cocci_menhir.ml" +# 32538 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32304,25 +32568,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _4 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 32310 "parser_cocci_menhir.ml" +# 32574 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr_list_option = Obj.magic _3 in let _2 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 32316 "parser_cocci_menhir.ml" +# 32580 "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_ = -# 1632 "parser_cocci_menhir.mly" +# 1668 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2, _3, P.clt2mcode ")" _4)) ) -# 32326 "parser_cocci_menhir.ml" +# 32590 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32366,31 +32630,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _6 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 32372 "parser_cocci_menhir.ml" +# 32636 "parser_cocci_menhir.ml" ) = Obj.magic _6 in let _5 : 'tv_initialize_list = Obj.magic _5 in let _4 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 32378 "parser_cocci_menhir.ml" +# 32642 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 32383 "parser_cocci_menhir.ml" +# 32647 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_ctype = Obj.magic _2 in let _1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 32389 "parser_cocci_menhir.ml" +# 32653 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in let _v : 'tv_postfix_expr_expr_invalid_ = -# 1638 "parser_cocci_menhir.mly" +# 1674 "parser_cocci_menhir.mly" ( let init = if P.struct_initializer _5 then @@ -32402,7 +32666,135 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (Ast0.InitList(P.clt2mcode "{" _4,_5,P.clt2mcode "}" _6,true)) in Ast0.wrap (Ast0.Constructor(P.clt2mcode "(" _1, _2, P.clt2mcode ")" _3, init)) ) -# 32406 "parser_cocci_menhir.ml" +# 32670 "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.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_basic_expr_eexpr_dot_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_pre_basic_expr_eexpr_dot_expressions_ = +# 1503 "parser_cocci_menhir.mly" + ( _1 ) +# 32694 "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 = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : 'tv_basic_expr_eexpr_dot_expressions_ = Obj.magic _3 in + let _2 : ( +# 179 "parser_cocci_menhir.mly" + (Data.clt) +# 32726 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_pre_basic_expr_eexpr_dot_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_pre_basic_expr_eexpr_dot_expressions_ = +# 1506 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Sequence(_1,P.clt2mcode "," _2,_3)) ) +# 32734 "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.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_basic_expr_eexpr_nest_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_pre_basic_expr_eexpr_nest_expressions_ = +# 1503 "parser_cocci_menhir.mly" + ( _1 ) +# 32758 "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 = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : 'tv_basic_expr_eexpr_nest_expressions_ = Obj.magic _3 in + let _2 : ( +# 179 "parser_cocci_menhir.mly" + (Data.clt) +# 32790 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_pre_basic_expr_eexpr_nest_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_pre_basic_expr_eexpr_nest_expressions_ = +# 1506 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Sequence(_1,P.clt2mcode "," _2,_3)) ) +# 32798 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32424,9 +32816,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_ = -# 1651 "parser_cocci_menhir.mly" +# 1687 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Ident(_1)) ) -# 32430 "parser_cocci_menhir.ml" +# 32822 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32451,17 +32843,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_ident = Obj.magic _2 in let _1 : ( -# 159 "parser_cocci_menhir.mly" +# 162 "parser_cocci_menhir.mly" (Data.clt) -# 32457 "parser_cocci_menhir.ml" +# 32849 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1653 "parser_cocci_menhir.mly" +# 1689 "parser_cocci_menhir.mly" ( let op = P.clt2mcode Ast.GetRefLabel _1 in Ast0.wrap(Ast0.Unary(Ast0.wrap(Ast0.Ident(_2)), op)) ) -# 32465 "parser_cocci_menhir.ml" +# 32857 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32480,17 +32872,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 32486 "parser_cocci_menhir.ml" +# 32878 "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_ = -# 1656 "parser_cocci_menhir.mly" +# 1692 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) -# 32494 "parser_cocci_menhir.ml" +# 32886 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32509,17 +32901,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 32515 "parser_cocci_menhir.ml" +# 32907 "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_ = -# 1659 "parser_cocci_menhir.mly" +# 1695 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) ) -# 32523 "parser_cocci_menhir.ml" +# 32915 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32538,17 +32930,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 32544 "parser_cocci_menhir.ml" +# 32936 "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_ = -# 1662 "parser_cocci_menhir.mly" +# 1698 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) ) -# 32552 "parser_cocci_menhir.ml" +# 32944 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32567,17 +32959,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 32573 "parser_cocci_menhir.ml" +# 32965 "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_ = -# 1665 "parser_cocci_menhir.mly" +# 1701 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) ) -# 32581 "parser_cocci_menhir.ml" +# 32973 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32596,18 +32988,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 136 "parser_cocci_menhir.mly" +# 138 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 32602 "parser_cocci_menhir.ml" +# 32994 "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_ = -# 1668 "parser_cocci_menhir.mly" +# 1704 "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)) ) -# 32611 "parser_cocci_menhir.ml" +# 33003 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32626,17 +33018,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 131 "parser_cocci_menhir.mly" +# 133 "parser_cocci_menhir.mly" (Parse_aux.expinfo) -# 32632 "parser_cocci_menhir.ml" +# 33024 "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_ = -# 1672 "parser_cocci_menhir.mly" +# 1708 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) ) -# 32640 "parser_cocci_menhir.ml" +# 33032 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32655,18 +33047,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 136 "parser_cocci_menhir.mly" +# 138 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 32661 "parser_cocci_menhir.ml" +# 33053 "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_ = -# 1675 "parser_cocci_menhir.mly" +# 1711 "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)) ) -# 32670 "parser_cocci_menhir.ml" +# 33062 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32685,18 +33077,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 136 "parser_cocci_menhir.mly" +# 138 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 32691 "parser_cocci_menhir.ml" +# 33083 "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_ = -# 1679 "parser_cocci_menhir.mly" +# 1715 "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)) ) -# 32700 "parser_cocci_menhir.ml" +# 33092 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32715,18 +33107,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 136 "parser_cocci_menhir.mly" +# 138 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 32721 "parser_cocci_menhir.ml" +# 33113 "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_ = -# 1683 "parser_cocci_menhir.mly" +# 1719 "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)) ) -# 32730 "parser_cocci_menhir.ml" +# 33122 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32755,23 +33147,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 32761 "parser_cocci_menhir.ml" +# 33153 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 32767 "parser_cocci_menhir.ml" +# 33159 "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_ = -# 1687 "parser_cocci_menhir.mly" +# 1723 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2, P.clt2mcode ")" _3)) ) -# 32775 "parser_cocci_menhir.ml" +# 33167 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32800,25 +33192,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 32806 "parser_cocci_menhir.ml" +# 33198 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in let _1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 32812 "parser_cocci_menhir.ml" +# 33204 "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_ = -# 1690 "parser_cocci_menhir.mly" +# 1726 "parser_cocci_menhir.mly" ( let (mids,code) = _2 in Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1, code, mids, P.clt2mcode ")" _3)) ) -# 32822 "parser_cocci_menhir.ml" +# 33214 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32840,9 +33232,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_ = -# 1694 "parser_cocci_menhir.mly" +# 1730 "parser_cocci_menhir.mly" ( _1 ) -# 32846 "parser_cocci_menhir.ml" +# 33238 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32864,9 +33256,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1651 "parser_cocci_menhir.mly" +# 1687 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Ident(_1)) ) -# 32870 "parser_cocci_menhir.ml" +# 33262 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32891,17 +33283,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_ident = Obj.magic _2 in let _1 : ( -# 159 "parser_cocci_menhir.mly" +# 162 "parser_cocci_menhir.mly" (Data.clt) -# 32897 "parser_cocci_menhir.ml" +# 33289 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1653 "parser_cocci_menhir.mly" +# 1689 "parser_cocci_menhir.mly" ( let op = P.clt2mcode Ast.GetRefLabel _1 in Ast0.wrap(Ast0.Unary(Ast0.wrap(Ast0.Ident(_2)), op)) ) -# 32905 "parser_cocci_menhir.ml" +# 33297 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32920,17 +33312,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 32926 "parser_cocci_menhir.ml" +# 33318 "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_ = -# 1656 "parser_cocci_menhir.mly" +# 1692 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) -# 32934 "parser_cocci_menhir.ml" +# 33326 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32949,17 +33341,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 32955 "parser_cocci_menhir.ml" +# 33347 "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_ = -# 1659 "parser_cocci_menhir.mly" +# 1695 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) ) -# 32963 "parser_cocci_menhir.ml" +# 33355 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32978,17 +33370,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 32984 "parser_cocci_menhir.ml" +# 33376 "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_ = -# 1662 "parser_cocci_menhir.mly" +# 1698 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) ) -# 32992 "parser_cocci_menhir.ml" +# 33384 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33007,17 +33399,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 33013 "parser_cocci_menhir.ml" +# 33405 "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_ = -# 1665 "parser_cocci_menhir.mly" +# 1701 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) ) -# 33021 "parser_cocci_menhir.ml" +# 33413 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33036,18 +33428,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 136 "parser_cocci_menhir.mly" +# 138 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 33042 "parser_cocci_menhir.ml" +# 33434 "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_ = -# 1668 "parser_cocci_menhir.mly" +# 1704 "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)) ) -# 33051 "parser_cocci_menhir.ml" +# 33443 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33066,17 +33458,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 131 "parser_cocci_menhir.mly" +# 133 "parser_cocci_menhir.mly" (Parse_aux.expinfo) -# 33072 "parser_cocci_menhir.ml" +# 33464 "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_ = -# 1672 "parser_cocci_menhir.mly" +# 1708 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) ) -# 33080 "parser_cocci_menhir.ml" +# 33472 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33095,18 +33487,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 136 "parser_cocci_menhir.mly" +# 138 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 33101 "parser_cocci_menhir.ml" +# 33493 "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_ = -# 1675 "parser_cocci_menhir.mly" +# 1711 "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)) ) -# 33110 "parser_cocci_menhir.ml" +# 33502 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33125,18 +33517,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 136 "parser_cocci_menhir.mly" +# 138 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 33131 "parser_cocci_menhir.ml" +# 33523 "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_ = -# 1679 "parser_cocci_menhir.mly" +# 1715 "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)) ) -# 33140 "parser_cocci_menhir.ml" +# 33532 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33155,18 +33547,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 136 "parser_cocci_menhir.mly" +# 138 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 33161 "parser_cocci_menhir.ml" +# 33553 "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_ = -# 1683 "parser_cocci_menhir.mly" +# 1719 "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)) ) -# 33170 "parser_cocci_menhir.ml" +# 33562 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33195,23 +33587,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 33201 "parser_cocci_menhir.ml" +# 33593 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 33207 "parser_cocci_menhir.ml" +# 33599 "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_ = -# 1687 "parser_cocci_menhir.mly" +# 1723 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2, P.clt2mcode ")" _3)) ) -# 33215 "parser_cocci_menhir.ml" +# 33607 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33240,25 +33632,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 33246 "parser_cocci_menhir.ml" +# 33638 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in let _1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 33252 "parser_cocci_menhir.ml" +# 33644 "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_ = -# 1690 "parser_cocci_menhir.mly" +# 1726 "parser_cocci_menhir.mly" ( let (mids,code) = _2 in Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1, code, mids, P.clt2mcode ")" _3)) ) -# 33262 "parser_cocci_menhir.ml" +# 33654 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33280,9 +33672,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1694 "parser_cocci_menhir.mly" +# 1730 "parser_cocci_menhir.mly" ( _1 ) -# 33286 "parser_cocci_menhir.ml" +# 33678 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33304,9 +33696,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_ = -# 1651 "parser_cocci_menhir.mly" +# 1687 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Ident(_1)) ) -# 33310 "parser_cocci_menhir.ml" +# 33702 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33331,17 +33723,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_ident = Obj.magic _2 in let _1 : ( -# 159 "parser_cocci_menhir.mly" +# 162 "parser_cocci_menhir.mly" (Data.clt) -# 33337 "parser_cocci_menhir.ml" +# 33729 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1653 "parser_cocci_menhir.mly" +# 1689 "parser_cocci_menhir.mly" ( let op = P.clt2mcode Ast.GetRefLabel _1 in Ast0.wrap(Ast0.Unary(Ast0.wrap(Ast0.Ident(_2)), op)) ) -# 33345 "parser_cocci_menhir.ml" +# 33737 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33360,17 +33752,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 33366 "parser_cocci_menhir.ml" +# 33758 "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_ = -# 1656 "parser_cocci_menhir.mly" +# 1692 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) -# 33374 "parser_cocci_menhir.ml" +# 33766 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33389,17 +33781,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 33395 "parser_cocci_menhir.ml" +# 33787 "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_ = -# 1659 "parser_cocci_menhir.mly" +# 1695 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) ) -# 33403 "parser_cocci_menhir.ml" +# 33795 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33418,17 +33810,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 33424 "parser_cocci_menhir.ml" +# 33816 "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_ = -# 1662 "parser_cocci_menhir.mly" +# 1698 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) ) -# 33432 "parser_cocci_menhir.ml" +# 33824 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33447,17 +33839,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 33453 "parser_cocci_menhir.ml" +# 33845 "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_ = -# 1665 "parser_cocci_menhir.mly" +# 1701 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) ) -# 33461 "parser_cocci_menhir.ml" +# 33853 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33476,18 +33868,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 136 "parser_cocci_menhir.mly" +# 138 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 33482 "parser_cocci_menhir.ml" +# 33874 "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_ = -# 1668 "parser_cocci_menhir.mly" +# 1704 "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)) ) -# 33491 "parser_cocci_menhir.ml" +# 33883 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33506,17 +33898,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 131 "parser_cocci_menhir.mly" +# 133 "parser_cocci_menhir.mly" (Parse_aux.expinfo) -# 33512 "parser_cocci_menhir.ml" +# 33904 "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_ = -# 1672 "parser_cocci_menhir.mly" +# 1708 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) ) -# 33520 "parser_cocci_menhir.ml" +# 33912 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33535,18 +33927,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 136 "parser_cocci_menhir.mly" +# 138 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 33541 "parser_cocci_menhir.ml" +# 33933 "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_ = -# 1675 "parser_cocci_menhir.mly" +# 1711 "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)) ) -# 33550 "parser_cocci_menhir.ml" +# 33942 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33565,18 +33957,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 136 "parser_cocci_menhir.mly" +# 138 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 33571 "parser_cocci_menhir.ml" +# 33963 "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_ = -# 1679 "parser_cocci_menhir.mly" +# 1715 "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)) ) -# 33580 "parser_cocci_menhir.ml" +# 33972 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33595,18 +33987,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 136 "parser_cocci_menhir.mly" +# 138 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 33601 "parser_cocci_menhir.ml" +# 33993 "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_ = -# 1683 "parser_cocci_menhir.mly" +# 1719 "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)) ) -# 33610 "parser_cocci_menhir.ml" +# 34002 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33635,23 +34027,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 33641 "parser_cocci_menhir.ml" +# 34033 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 33647 "parser_cocci_menhir.ml" +# 34039 "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_ = -# 1687 "parser_cocci_menhir.mly" +# 1723 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2, P.clt2mcode ")" _3)) ) -# 33655 "parser_cocci_menhir.ml" +# 34047 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33680,25 +34072,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 33686 "parser_cocci_menhir.ml" +# 34078 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in let _1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 33692 "parser_cocci_menhir.ml" +# 34084 "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_ = -# 1690 "parser_cocci_menhir.mly" +# 1726 "parser_cocci_menhir.mly" ( let (mids,code) = _2 in Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1, code, mids, P.clt2mcode ")" _3)) ) -# 33702 "parser_cocci_menhir.ml" +# 34094 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33720,9 +34112,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_ = -# 1694 "parser_cocci_menhir.mly" +# 1730 "parser_cocci_menhir.mly" ( _1 ) -# 33726 "parser_cocci_menhir.ml" +# 34118 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33744,9 +34136,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1651 "parser_cocci_menhir.mly" +# 1687 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Ident(_1)) ) -# 33750 "parser_cocci_menhir.ml" +# 34142 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33771,17 +34163,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_ident = Obj.magic _2 in let _1 : ( -# 159 "parser_cocci_menhir.mly" +# 162 "parser_cocci_menhir.mly" (Data.clt) -# 33777 "parser_cocci_menhir.ml" +# 34169 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1653 "parser_cocci_menhir.mly" +# 1689 "parser_cocci_menhir.mly" ( let op = P.clt2mcode Ast.GetRefLabel _1 in Ast0.wrap(Ast0.Unary(Ast0.wrap(Ast0.Ident(_2)), op)) ) -# 33785 "parser_cocci_menhir.ml" +# 34177 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33800,17 +34192,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 33806 "parser_cocci_menhir.ml" +# 34198 "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_ = -# 1656 "parser_cocci_menhir.mly" +# 1692 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) -# 33814 "parser_cocci_menhir.ml" +# 34206 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33829,17 +34221,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 33835 "parser_cocci_menhir.ml" +# 34227 "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_ = -# 1659 "parser_cocci_menhir.mly" +# 1695 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) ) -# 33843 "parser_cocci_menhir.ml" +# 34235 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33858,17 +34250,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 33864 "parser_cocci_menhir.ml" +# 34256 "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_ = -# 1662 "parser_cocci_menhir.mly" +# 1698 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) ) -# 33872 "parser_cocci_menhir.ml" +# 34264 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33887,17 +34279,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 33893 "parser_cocci_menhir.ml" +# 34285 "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_ = -# 1665 "parser_cocci_menhir.mly" +# 1701 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) ) -# 33901 "parser_cocci_menhir.ml" +# 34293 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33916,18 +34308,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 136 "parser_cocci_menhir.mly" +# 138 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 33922 "parser_cocci_menhir.ml" +# 34314 "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_ = -# 1668 "parser_cocci_menhir.mly" +# 1704 "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)) ) -# 33931 "parser_cocci_menhir.ml" +# 34323 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33946,17 +34338,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 131 "parser_cocci_menhir.mly" +# 133 "parser_cocci_menhir.mly" (Parse_aux.expinfo) -# 33952 "parser_cocci_menhir.ml" +# 34344 "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_ = -# 1672 "parser_cocci_menhir.mly" +# 1708 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) ) -# 33960 "parser_cocci_menhir.ml" +# 34352 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33975,18 +34367,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 136 "parser_cocci_menhir.mly" +# 138 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 33981 "parser_cocci_menhir.ml" +# 34373 "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_ = -# 1675 "parser_cocci_menhir.mly" +# 1711 "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)) ) -# 33990 "parser_cocci_menhir.ml" +# 34382 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34005,18 +34397,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 136 "parser_cocci_menhir.mly" +# 138 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 34011 "parser_cocci_menhir.ml" +# 34403 "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_ = -# 1679 "parser_cocci_menhir.mly" +# 1715 "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)) ) -# 34020 "parser_cocci_menhir.ml" +# 34412 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34035,18 +34427,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 136 "parser_cocci_menhir.mly" +# 138 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 34041 "parser_cocci_menhir.ml" +# 34433 "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_ = -# 1683 "parser_cocci_menhir.mly" +# 1719 "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)) ) -# 34050 "parser_cocci_menhir.ml" +# 34442 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34075,23 +34467,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 34081 "parser_cocci_menhir.ml" +# 34473 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 34087 "parser_cocci_menhir.ml" +# 34479 "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_ = -# 1687 "parser_cocci_menhir.mly" +# 1723 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2, P.clt2mcode ")" _3)) ) -# 34095 "parser_cocci_menhir.ml" +# 34487 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34120,25 +34512,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 34126 "parser_cocci_menhir.ml" +# 34518 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_midzero_list_expr_eexpr_ = Obj.magic _2 in let _1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 34132 "parser_cocci_menhir.ml" +# 34524 "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_ = -# 1690 "parser_cocci_menhir.mly" +# 1726 "parser_cocci_menhir.mly" ( let (mids,code) = _2 in Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1, code, mids, P.clt2mcode ")" _3)) ) -# 34142 "parser_cocci_menhir.ml" +# 34534 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34160,9 +34552,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1694 "parser_cocci_menhir.mly" +# 1730 "parser_cocci_menhir.mly" ( _1 ) -# 34166 "parser_cocci_menhir.ml" +# 34558 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34182,9 +34574,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure = -# 261 "parser_cocci_menhir.mly" +# 264 "parser_cocci_menhir.mly" ( Ast0.Pure ) -# 34188 "parser_cocci_menhir.ml" +# 34580 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34204,9 +34596,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure = -# 262 "parser_cocci_menhir.mly" +# 265 "parser_cocci_menhir.mly" ( Ast0.Context ) -# 34210 "parser_cocci_menhir.ml" +# 34602 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34230,9 +34622,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_pure = -# 263 "parser_cocci_menhir.mly" +# 266 "parser_cocci_menhir.mly" ( Ast0.PureContext ) -# 34236 "parser_cocci_menhir.ml" +# 34628 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34256,9 +34648,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_pure = -# 264 "parser_cocci_menhir.mly" +# 267 "parser_cocci_menhir.mly" ( Ast0.PureContext ) -# 34262 "parser_cocci_menhir.ml" +# 34654 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34273,9 +34665,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 = -# 265 "parser_cocci_menhir.mly" +# 268 "parser_cocci_menhir.mly" ( Ast0.Impure ) -# 34279 "parser_cocci_menhir.ml" +# 34671 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34294,16 +34686,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) -# 34300 "parser_cocci_menhir.ml" +# 34692 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident = -# 1708 "parser_cocci_menhir.mly" +# 1744 "parser_cocci_menhir.mly" ( _1 ) -# 34307 "parser_cocci_menhir.ml" +# 34699 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34323,9 +34715,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1715 "parser_cocci_menhir.mly" +# 1751 "parser_cocci_menhir.mly" ( "identifier" ) -# 34329 "parser_cocci_menhir.ml" +# 34721 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34345,9 +34737,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1716 "parser_cocci_menhir.mly" +# 1752 "parser_cocci_menhir.mly" ( "expression" ) -# 34351 "parser_cocci_menhir.ml" +# 34743 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34367,9 +34759,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1717 "parser_cocci_menhir.mly" +# 1753 "parser_cocci_menhir.mly" ( "statement" ) -# 34373 "parser_cocci_menhir.ml" +# 34765 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34389,9 +34781,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1718 "parser_cocci_menhir.mly" +# 1754 "parser_cocci_menhir.mly" ( "function" ) -# 34395 "parser_cocci_menhir.ml" +# 34787 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34411,9 +34803,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1719 "parser_cocci_menhir.mly" +# 1755 "parser_cocci_menhir.mly" ( "local" ) -# 34417 "parser_cocci_menhir.ml" +# 34809 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34433,9 +34825,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1720 "parser_cocci_menhir.mly" +# 1756 "parser_cocci_menhir.mly" ( "type" ) -# 34439 "parser_cocci_menhir.ml" +# 34831 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34455,9 +34847,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1721 "parser_cocci_menhir.mly" +# 1757 "parser_cocci_menhir.mly" ( "parameter" ) -# 34461 "parser_cocci_menhir.ml" +# 34853 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34477,9 +34869,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1722 "parser_cocci_menhir.mly" +# 1758 "parser_cocci_menhir.mly" ( "idexpression" ) -# 34483 "parser_cocci_menhir.ml" +# 34875 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34499,9 +34891,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1723 "parser_cocci_menhir.mly" +# 1759 "parser_cocci_menhir.mly" ( "initialiser" ) -# 34505 "parser_cocci_menhir.ml" +# 34897 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34521,9 +34913,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1724 "parser_cocci_menhir.mly" +# 1760 "parser_cocci_menhir.mly" ( "list" ) -# 34527 "parser_cocci_menhir.ml" +# 34919 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34543,9 +34935,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1725 "parser_cocci_menhir.mly" +# 1761 "parser_cocci_menhir.mly" ( "fresh" ) -# 34549 "parser_cocci_menhir.ml" +# 34941 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34565,9 +34957,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1726 "parser_cocci_menhir.mly" +# 1762 "parser_cocci_menhir.mly" ( "constant" ) -# 34571 "parser_cocci_menhir.ml" +# 34963 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34587,9 +34979,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1727 "parser_cocci_menhir.mly" +# 1763 "parser_cocci_menhir.mly" ( "error" ) -# 34593 "parser_cocci_menhir.ml" +# 34985 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34609,9 +35001,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1728 "parser_cocci_menhir.mly" +# 1764 "parser_cocci_menhir.mly" ( "words" ) -# 34615 "parser_cocci_menhir.ml" +# 35007 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34631,9 +35023,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1729 "parser_cocci_menhir.mly" +# 1765 "parser_cocci_menhir.mly" ( "pure" ) -# 34637 "parser_cocci_menhir.ml" +# 35029 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34653,9 +35045,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1730 "parser_cocci_menhir.mly" +# 1766 "parser_cocci_menhir.mly" ( "context" ) -# 34659 "parser_cocci_menhir.ml" +# 35051 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34675,9 +35067,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1731 "parser_cocci_menhir.mly" +# 1767 "parser_cocci_menhir.mly" ( "generated" ) -# 34681 "parser_cocci_menhir.ml" +# 35073 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34697,9 +35089,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1732 "parser_cocci_menhir.mly" +# 1768 "parser_cocci_menhir.mly" ( "typedef" ) -# 34703 "parser_cocci_menhir.ml" +# 35095 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34719,9 +35111,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1733 "parser_cocci_menhir.mly" +# 1769 "parser_cocci_menhir.mly" ( "declarer" ) -# 34725 "parser_cocci_menhir.ml" +# 35117 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34741,9 +35133,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1734 "parser_cocci_menhir.mly" +# 1770 "parser_cocci_menhir.mly" ( "iterator" ) -# 34747 "parser_cocci_menhir.ml" +# 35139 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34763,9 +35155,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1735 "parser_cocci_menhir.mly" +# 1771 "parser_cocci_menhir.mly" ( "name" ) -# 34769 "parser_cocci_menhir.ml" +# 35161 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34785,9 +35177,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1736 "parser_cocci_menhir.mly" +# 1772 "parser_cocci_menhir.mly" ( "position" ) -# 34791 "parser_cocci_menhir.ml" +# 35183 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34807,9 +35199,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1737 "parser_cocci_menhir.mly" +# 1773 "parser_cocci_menhir.mly" ( "symbol" ) -# 34813 "parser_cocci_menhir.ml" +# 35205 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34831,9 +35223,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 = -# 1744 "parser_cocci_menhir.mly" +# 1780 "parser_cocci_menhir.mly" ( (None,P.id2name _1) ) -# 34837 "parser_cocci_menhir.ml" +# 35229 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34855,9 +35247,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 = -# 1745 "parser_cocci_menhir.mly" +# 1781 "parser_cocci_menhir.mly" ( (None,_1) ) -# 34861 "parser_cocci_menhir.ml" +# 35253 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34879,9 +35271,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 = -# 1746 "parser_cocci_menhir.mly" +# 1782 "parser_cocci_menhir.mly" ( _1 ) -# 34885 "parser_cocci_menhir.ml" +# 35277 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34909,13 +35301,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_ = -# 1783 "parser_cocci_menhir.mly" +# 1819 "parser_cocci_menhir.mly" ( match optc with None -> (i, Ast0.NoConstraint) | Some c -> (i, c) ) -# 34919 "parser_cocci_menhir.ml" +# 35311 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34943,13 +35335,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_ = -# 1783 "parser_cocci_menhir.mly" +# 1819 "parser_cocci_menhir.mly" ( match optc with None -> (i, Ast0.NoConstraint) | Some c -> (i, c) ) -# 34953 "parser_cocci_menhir.ml" +# 35345 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34977,13 +35369,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_ = -# 1808 "parser_cocci_menhir.mly" +# 1844 "parser_cocci_menhir.mly" ( match c with None -> (i, Ast.IdNoConstraint) | Some constraint_ -> (i,constraint_) ) -# 34987 "parser_cocci_menhir.ml" +# 35379 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35011,14 +35403,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_ = -# 1791 "parser_cocci_menhir.mly" +# 1827 "parser_cocci_menhir.mly" ( Common.Left (match c with None -> (i, Ast.IdNoConstraint) | Some constraint_ -> (i,constraint_)) ) -# 35022 "parser_cocci_menhir.ml" +# 35414 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35048,7 +35440,7 @@ 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_ = -# 1798 "parser_cocci_menhir.mly" +# 1834 "parser_cocci_menhir.mly" ( let nm = P.id2name _3 in Iteration.parsed_virtual_identifiers := @@ -35056,7 +35448,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct !Iteration.parsed_virtual_identifiers; Common.Right nm ) -# 35060 "parser_cocci_menhir.ml" +# 35452 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35078,9 +35470,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 = -# 1752 "parser_cocci_menhir.mly" +# 1788 "parser_cocci_menhir.mly" ( (_1,Ast.NoVal) ) -# 35084 "parser_cocci_menhir.ml" +# 35476 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35112,11 +35504,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 = -# 1755 "parser_cocci_menhir.mly" +# 1791 "parser_cocci_menhir.mly" ( match _3 with [Ast.SeedString s] -> (_1,Ast.StringSeed s) | _ -> (_1,Ast.ListSeed _3) ) -# 35120 "parser_cocci_menhir.ml" +# 35512 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35144,11 +35536,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_ = -# 1777 "parser_cocci_menhir.mly" +# 1813 "parser_cocci_menhir.mly" ( (i, l) ) -# 35152 "parser_cocci_menhir.ml" +# 35544 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35170,9 +35562,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_symbol = -# 1711 "parser_cocci_menhir.mly" +# 1747 "parser_cocci_menhir.mly" ( _1 ) -# 35176 "parser_cocci_menhir.ml" +# 35568 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35191,16 +35583,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) -# 35197 "parser_cocci_menhir.ml" +# 35589 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_symbol = -# 1712 "parser_cocci_menhir.mly" +# 1748 "parser_cocci_menhir.mly" ( _1 ) -# 35204 "parser_cocci_menhir.ml" +# 35596 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35222,9 +35614,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 = -# 1869 "parser_cocci_menhir.mly" +# 1905 "parser_cocci_menhir.mly" (Ast0.NotIdCstrt re) -# 35228 "parser_cocci_menhir.ml" +# 35620 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35246,9 +35638,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 = -# 1870 "parser_cocci_menhir.mly" +# 1906 "parser_cocci_menhir.mly" (Ast0.NotExpCstrt ne) -# 35252 "parser_cocci_menhir.ml" +# 35644 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35270,9 +35662,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 = -# 1871 "parser_cocci_menhir.mly" +# 1907 "parser_cocci_menhir.mly" (Ast0.SubExpCstrt s) -# 35276 "parser_cocci_menhir.ml" +# 35668 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35294,9 +35686,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_re_ in let _endpos = _endpos_re_ in let _v : 'tv_re_or_not_eqid = -# 1815 "parser_cocci_menhir.mly" +# 1851 "parser_cocci_menhir.mly" (Ast.IdRegExpConstraint re) -# 35300 "parser_cocci_menhir.ml" +# 35692 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35318,9 +35710,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_ne_ in let _endpos = _endpos_ne_ in let _v : 'tv_re_or_not_eqid = -# 1816 "parser_cocci_menhir.mly" +# 1852 "parser_cocci_menhir.mly" (ne) -# 35324 "parser_cocci_menhir.ml" +# 35716 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35343,21 +35735,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let re : ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 35349 "parser_cocci_menhir.ml" +# 35741 "parser_cocci_menhir.ml" ) = Obj.magic re in let _startpos = _startpos__1_ in let _endpos = _endpos_re_ in let _v : 'tv_regexp_eqid = -# 1820 "parser_cocci_menhir.mly" +# 1856 "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,Regexp.regexp s) ) -# 35361 "parser_cocci_menhir.ml" +# 35753 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35380,21 +35772,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let re : ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 35386 "parser_cocci_menhir.ml" +# 35778 "parser_cocci_menhir.ml" ) = Obj.magic re in let _startpos = _startpos__1_ in let _endpos = _endpos_re_ in let _v : 'tv_regexp_eqid = -# 1827 "parser_cocci_menhir.mly" +# 1863 "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,Regexp.regexp s) ) -# 35398 "parser_cocci_menhir.ml" +# 35790 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35409,13 +35801,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 : ( -# 202 "parser_cocci_menhir.mly" +# 205 "parser_cocci_menhir.mly" (unit) -# 35415 "parser_cocci_menhir.ml" +# 35807 "parser_cocci_menhir.ml" ) = -# 243 "parser_cocci_menhir.mly" +# 246 "parser_cocci_menhir.mly" ( ) -# 35419 "parser_cocci_menhir.ml" +# 35811 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35437,9 +35829,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_rule_elem_statement = -# 1159 "parser_cocci_menhir.mly" +# 1162 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),_1)) ) -# 35443 "parser_cocci_menhir.ml" +# 35835 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35463,17 +35855,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 35469 "parser_cocci_menhir.ml" +# 35861 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_option_expr_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_rule_elem_statement = -# 1160 "parser_cocci_menhir.mly" +# 1163 "parser_cocci_menhir.mly" ( P.exp_stm _1 _2 ) -# 35477 "parser_cocci_menhir.ml" +# 35869 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35502,22 +35894,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 35508 "parser_cocci_menhir.ml" +# 35900 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 123 "parser_cocci_menhir.mly" +# 125 "parser_cocci_menhir.mly" (Data.clt) -# 35514 "parser_cocci_menhir.ml" +# 35906 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_rule_elem_statement = -# 1161 "parser_cocci_menhir.mly" +# 1164 "parser_cocci_menhir.mly" ( P.ret_exp _1 _2 _3 ) -# 35521 "parser_cocci_menhir.ml" +# 35913 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35541,21 +35933,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 35547 "parser_cocci_menhir.ml" +# 35939 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 123 "parser_cocci_menhir.mly" +# 125 "parser_cocci_menhir.mly" (Data.clt) -# 35552 "parser_cocci_menhir.ml" +# 35944 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_rule_elem_statement = -# 1162 "parser_cocci_menhir.mly" +# 1165 "parser_cocci_menhir.mly" ( P.ret _1 _2 ) -# 35559 "parser_cocci_menhir.ml" +# 35951 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35579,21 +35971,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 35585 "parser_cocci_menhir.ml" +# 35977 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 124 "parser_cocci_menhir.mly" +# 126 "parser_cocci_menhir.mly" (Data.clt) -# 35590 "parser_cocci_menhir.ml" +# 35982 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_rule_elem_statement = -# 1163 "parser_cocci_menhir.mly" +# 1166 "parser_cocci_menhir.mly" ( P.break _1 _2 ) -# 35597 "parser_cocci_menhir.ml" +# 35989 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35617,21 +36009,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 35623 "parser_cocci_menhir.ml" +# 36015 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 124 "parser_cocci_menhir.mly" +# 126 "parser_cocci_menhir.mly" (Data.clt) -# 35628 "parser_cocci_menhir.ml" +# 36020 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_rule_elem_statement = -# 1164 "parser_cocci_menhir.mly" +# 1167 "parser_cocci_menhir.mly" ( P.cont _1 _2 ) -# 35635 "parser_cocci_menhir.ml" +# 36027 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35660,26 +36052,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 35666 "parser_cocci_menhir.ml" +# 36058 "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 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 35672 "parser_cocci_menhir.ml" +# 36064 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_rule_elem_statement = -# 1166 "parser_cocci_menhir.mly" +# 1169 "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)) ) -# 35683 "parser_cocci_menhir.ml" +# 36075 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35733,20 +36125,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in let _v : ( -# 224 "parser_cocci_menhir.mly" +# 227 "parser_cocci_menhir.mly" (Ast_cocci.rulename) -# 35739 "parser_cocci_menhir.ml" +# 36131 "parser_cocci_menhir.ml" ) = let nm = # 39 "standard.mly" ( None ) -# 35744 "parser_cocci_menhir.ml" +# 36136 "parser_cocci_menhir.ml" in -# 273 "parser_cocci_menhir.mly" +# 276 "parser_cocci_menhir.mly" ( P.make_cocci_rule_name_result nm d i a e ee ) -# 35750 "parser_cocci_menhir.ml" +# 36142 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35806,21 +36198,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_x0_ in let _endpos = _endpos__8_ in let _v : ( -# 224 "parser_cocci_menhir.mly" +# 227 "parser_cocci_menhir.mly" (Ast_cocci.rulename) -# 35812 "parser_cocci_menhir.ml" +# 36204 "parser_cocci_menhir.ml" ) = let nm = let x = x0 in # 41 "standard.mly" ( Some x ) -# 35818 "parser_cocci_menhir.ml" +# 36210 "parser_cocci_menhir.ml" in -# 273 "parser_cocci_menhir.mly" +# 276 "parser_cocci_menhir.mly" ( P.make_cocci_rule_name_result nm d i a e ee ) -# 35824 "parser_cocci_menhir.ml" +# 36216 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35878,13 +36270,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__8_ in let _v : ( -# 224 "parser_cocci_menhir.mly" +# 227 "parser_cocci_menhir.mly" (Ast_cocci.rulename) -# 35884 "parser_cocci_menhir.ml" +# 36276 "parser_cocci_menhir.ml" ) = -# 278 "parser_cocci_menhir.mly" +# 281 "parser_cocci_menhir.mly" ( P.make_generated_rule_name_result None d i a e ee ) -# 35888 "parser_cocci_menhir.ml" +# 36280 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35924,20 +36316,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : ( -# 224 "parser_cocci_menhir.mly" +# 227 "parser_cocci_menhir.mly" (Ast_cocci.rulename) -# 35930 "parser_cocci_menhir.ml" +# 36322 "parser_cocci_menhir.ml" ) = let nm = # 39 "standard.mly" ( None ) -# 35935 "parser_cocci_menhir.ml" +# 36327 "parser_cocci_menhir.ml" in -# 280 "parser_cocci_menhir.mly" +# 283 "parser_cocci_menhir.mly" ( P.make_script_rule_name_result lang nm d ) -# 35941 "parser_cocci_menhir.ml" +# 36333 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35983,21 +36375,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in let _v : ( -# 224 "parser_cocci_menhir.mly" +# 227 "parser_cocci_menhir.mly" (Ast_cocci.rulename) -# 35989 "parser_cocci_menhir.ml" +# 36381 "parser_cocci_menhir.ml" ) = let nm = let x = x0 in # 41 "standard.mly" ( Some x ) -# 35995 "parser_cocci_menhir.ml" +# 36387 "parser_cocci_menhir.ml" in -# 280 "parser_cocci_menhir.mly" +# 283 "parser_cocci_menhir.mly" ( P.make_script_rule_name_result lang nm d ) -# 36001 "parser_cocci_menhir.ml" +# 36393 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36037,13 +36429,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : ( -# 224 "parser_cocci_menhir.mly" +# 227 "parser_cocci_menhir.mly" (Ast_cocci.rulename) -# 36043 "parser_cocci_menhir.ml" +# 36435 "parser_cocci_menhir.ml" ) = -# 282 "parser_cocci_menhir.mly" +# 285 "parser_cocci_menhir.mly" ( P.make_initial_script_rule_name_result lang d ) -# 36047 "parser_cocci_menhir.ml" +# 36439 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36083,13 +36475,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : ( -# 224 "parser_cocci_menhir.mly" +# 227 "parser_cocci_menhir.mly" (Ast_cocci.rulename) -# 36089 "parser_cocci_menhir.ml" +# 36481 "parser_cocci_menhir.ml" ) = -# 284 "parser_cocci_menhir.mly" +# 287 "parser_cocci_menhir.mly" ( P.make_final_script_rule_name_result lang d ) -# 36093 "parser_cocci_menhir.ml" +# 36485 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36115,13 +36507,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_py_ in let _endpos = _endpos__2_ in let _v : ( -# 230 "parser_cocci_menhir.mly" +# 233 "parser_cocci_menhir.mly" ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option) -# 36121 "parser_cocci_menhir.ml" +# 36513 "parser_cocci_menhir.ml" ) = -# 2389 "parser_cocci_menhir.mly" +# 2425 "parser_cocci_menhir.mly" ( ((Some (P.id2name py), None), None) ) -# 36125 "parser_cocci_menhir.ml" +# 36517 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36153,13 +36545,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_py_ in let _endpos = _endpos__3_ in let _v : ( -# 230 "parser_cocci_menhir.mly" +# 233 "parser_cocci_menhir.mly" ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option) -# 36159 "parser_cocci_menhir.ml" +# 36551 "parser_cocci_menhir.ml" ) = -# 2391 "parser_cocci_menhir.mly" +# 2427 "parser_cocci_menhir.mly" ( ((Some (P.id2name py), None), Some _2) ) -# 36163 "parser_cocci_menhir.ml" +# 36555 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36207,13 +36599,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in let _v : ( -# 230 "parser_cocci_menhir.mly" +# 233 "parser_cocci_menhir.mly" ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option) -# 36213 "parser_cocci_menhir.ml" +# 36605 "parser_cocci_menhir.ml" ) = -# 2393 "parser_cocci_menhir.mly" +# 2429 "parser_cocci_menhir.mly" ( ((None, Some (P.id2name ast)), Some _6) ) -# 36217 "parser_cocci_menhir.ml" +# 36609 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36261,13 +36653,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in let _v : ( -# 230 "parser_cocci_menhir.mly" +# 233 "parser_cocci_menhir.mly" ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option) -# 36267 "parser_cocci_menhir.ml" +# 36659 "parser_cocci_menhir.ml" ) = -# 2395 "parser_cocci_menhir.mly" +# 2431 "parser_cocci_menhir.mly" ( ((Some (P.id2name str), None), Some _6) ) -# 36271 "parser_cocci_menhir.ml" +# 36663 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36317,13 +36709,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in let _v : ( -# 230 "parser_cocci_menhir.mly" +# 233 "parser_cocci_menhir.mly" ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option) -# 36323 "parser_cocci_menhir.ml" +# 36715 "parser_cocci_menhir.ml" ) = -# 2397 "parser_cocci_menhir.mly" +# 2433 "parser_cocci_menhir.mly" ( ((Some (P.id2name str), Some (P.id2name ast)), Some _6) ) -# 36327 "parser_cocci_menhir.ml" +# 36719 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36356,18 +36748,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let cocci : 'tv_pure_ident = Obj.magic cocci in let _2 : ( -# 112 "parser_cocci_menhir.mly" +# 114 "parser_cocci_menhir.mly" (string) -# 36362 "parser_cocci_menhir.ml" +# 36754 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _startpos = _startpos__1_ in let _endpos = _endpos_cocci_ in let _v : 'tv_script_name_decl = -# 2401 "parser_cocci_menhir.mly" +# 2437 "parser_cocci_menhir.mly" ( let nm = P.id2name cocci in let mv = Parse_aux.lookup _2 nm in ((_2, nm), mv) ) -# 36371 "parser_cocci_menhir.ml" +# 36763 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36401,7 +36793,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_cocci_ in let _v : 'tv_script_name_decl = -# 2405 "parser_cocci_menhir.mly" +# 2441 "parser_cocci_menhir.mly" ( let nm = P.id2name cocci in Iteration.parsed_virtual_identifiers := Common.union_set [nm] @@ -36409,7 +36801,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let name = ("virtual", nm) in let mv = Ast.MetaIdDecl(Ast.NONE,name) in (name,mv) ) -# 36413 "parser_cocci_menhir.ml" +# 36805 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36428,16 +36820,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 36434 "parser_cocci_menhir.ml" +# 36826 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_seed_elem = -# 1760 "parser_cocci_menhir.mly" +# 1796 "parser_cocci_menhir.mly" ( let (x,_) = _1 in Ast.SeedString x ) -# 36441 "parser_cocci_menhir.ml" +# 36833 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36456,16 +36848,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 128 "parser_cocci_menhir.mly" +# 130 "parser_cocci_menhir.mly" (Parse_aux.midinfo) -# 36462 "parser_cocci_menhir.ml" +# 36854 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_seed_elem = -# 1761 "parser_cocci_menhir.mly" +# 1797 "parser_cocci_menhir.mly" ( let (x,_,_,_,_) = _1 in Ast.SeedId x ) -# 36469 "parser_cocci_menhir.ml" +# 36861 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36485,9 +36877,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_seed_elem = -# 1762 "parser_cocci_menhir.mly" +# 1798 "parser_cocci_menhir.mly" (failwith "tmeta") -# 36491 "parser_cocci_menhir.ml" +# 36883 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36517,14 +36909,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_seed_elem = -# 1764 "parser_cocci_menhir.mly" +# 1800 "parser_cocci_menhir.mly" ( let nm = ("virtual",P.id2name _3) in Iteration.parsed_virtual_identifiers := Common.union_set [snd nm] !Iteration.parsed_virtual_identifiers; try Ast.SeedString (List.assoc (snd nm) !Flag.defined_virtual_env) with Not_found -> Ast.SeedId nm ) -# 36528 "parser_cocci_menhir.ml" +# 36920 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36553,18 +36945,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_pure_ident = Obj.magic _3 in let _1 : ( -# 112 "parser_cocci_menhir.mly" +# 114 "parser_cocci_menhir.mly" (string) -# 36559 "parser_cocci_menhir.ml" +# 36951 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_seed_elem = -# 1771 "parser_cocci_menhir.mly" +# 1807 "parser_cocci_menhir.mly" ( let nm = (_1,P.id2name _3) in P.check_meta(Ast.MetaIdDecl(Ast.NONE,nm)); Ast.SeedId nm ) -# 36568 "parser_cocci_menhir.ml" +# 36960 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36583,16 +36975,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let x : ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 36589 "parser_cocci_menhir.ml" +# 36981 "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 ] ) -# 36596 "parser_cocci_menhir.ml" +# 36988 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36621,16 +37013,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let xs : 'tv_separated_nonempty_list_TComma_TString_ = Obj.magic xs in let x : ( -# 156 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * Data.clt) -# 36627 "parser_cocci_menhir.ml" +# 37019 "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 ) -# 36634 "parser_cocci_menhir.ml" +# 37026 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36654,7 +37046,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_any_strict_ = # 144 "standard.mly" ( [ x ] ) -# 36658 "parser_cocci_menhir.ml" +# 37050 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36688,7 +37080,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_any_strict_ = # 146 "standard.mly" ( x :: xs ) -# 36692 "parser_cocci_menhir.ml" +# 37084 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36712,7 +37104,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_ctype_ = # 144 "standard.mly" ( [ x ] ) -# 36716 "parser_cocci_menhir.ml" +# 37108 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36746,7 +37138,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_ctype_ = # 146 "standard.mly" ( x :: xs ) -# 36750 "parser_cocci_menhir.ml" +# 37142 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36770,7 +37162,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_d_ident_ = # 144 "standard.mly" ( [ x ] ) -# 36774 "parser_cocci_menhir.ml" +# 37166 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36804,7 +37196,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_d_ident_ = # 146 "standard.mly" ( x :: xs ) -# 36808 "parser_cocci_menhir.ml" +# 37200 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36828,7 +37220,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_ident_or_const_ = # 144 "standard.mly" ( [ x ] ) -# 36832 "parser_cocci_menhir.ml" +# 37224 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36862,7 +37254,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_ident_or_const_ = # 146 "standard.mly" ( x :: xs ) -# 36866 "parser_cocci_menhir.ml" +# 37258 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36886,7 +37278,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_meta_ident_ = # 144 "standard.mly" ( [ x ] ) -# 36890 "parser_cocci_menhir.ml" +# 37282 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36920,7 +37312,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_meta_ident_ = # 146 "standard.mly" ( x :: xs ) -# 36924 "parser_cocci_menhir.ml" +# 37316 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36944,7 +37336,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_pure_ident_ = # 144 "standard.mly" ( [ x ] ) -# 36948 "parser_cocci_menhir.ml" +# 37340 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36978,7 +37370,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_pure_ident_ = # 146 "standard.mly" ( x :: xs ) -# 36982 "parser_cocci_menhir.ml" +# 37374 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37002,7 +37394,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_ = # 144 "standard.mly" ( [ x ] ) -# 37006 "parser_cocci_menhir.ml" +# 37398 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37036,7 +37428,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_ = # 146 "standard.mly" ( x :: xs ) -# 37040 "parser_cocci_menhir.ml" +# 37432 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37060,7 +37452,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 ] ) -# 37064 "parser_cocci_menhir.ml" +# 37456 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37094,7 +37486,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 ) -# 37098 "parser_cocci_menhir.ml" +# 37490 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37118,7 +37510,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 ] ) -# 37122 "parser_cocci_menhir.ml" +# 37514 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37152,7 +37544,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 ) -# 37156 "parser_cocci_menhir.ml" +# 37548 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37176,7 +37568,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 ] ) -# 37180 "parser_cocci_menhir.ml" +# 37572 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37210,7 +37602,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 ) -# 37214 "parser_cocci_menhir.ml" +# 37606 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37234,7 +37626,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 ] ) -# 37238 "parser_cocci_menhir.ml" +# 37630 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37268,7 +37660,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 ) -# 37272 "parser_cocci_menhir.ml" +# 37664 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37292,7 +37684,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 ] ) -# 37296 "parser_cocci_menhir.ml" +# 37688 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37326,7 +37718,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 ) -# 37330 "parser_cocci_menhir.ml" +# 37722 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37350,7 +37742,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 ] ) -# 37354 "parser_cocci_menhir.ml" +# 37746 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37384,7 +37776,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 ) -# 37388 "parser_cocci_menhir.ml" +# 37780 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37408,7 +37800,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_typedef_ident_ = # 144 "standard.mly" ( [ x ] ) -# 37412 "parser_cocci_menhir.ml" +# 37804 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37442,7 +37834,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_typedef_ident_ = # 146 "standard.mly" ( x :: xs ) -# 37446 "parser_cocci_menhir.ml" +# 37838 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37466,7 +37858,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TCppConcatOp_seed_elem_ = # 144 "standard.mly" ( [ x ] ) -# 37470 "parser_cocci_menhir.ml" +# 37862 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37500,7 +37892,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TCppConcatOp_seed_elem_ = # 146 "standard.mly" ( x :: xs ) -# 37504 "parser_cocci_menhir.ml" +# 37896 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37522,9 +37914,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_single_statement = -# 1174 "parser_cocci_menhir.mly" +# 1177 "parser_cocci_menhir.mly" ( _1 ) -# 37528 "parser_cocci_menhir.ml" +# 37920 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37553,26 +37945,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 37559 "parser_cocci_menhir.ml" +# 37951 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_midzero_list_statement_statement_ = Obj.magic _2 in let _1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 37565 "parser_cocci_menhir.ml" +# 37957 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_single_statement = -# 1178 "parser_cocci_menhir.mly" +# 1181 "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)) ) -# 37576 "parser_cocci_menhir.ml" +# 37968 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37594,9 +37986,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_statement = -# 1100 "parser_cocci_menhir.mly" +# 1103 "parser_cocci_menhir.mly" ( _1 ) -# 37600 "parser_cocci_menhir.ml" +# 37992 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37615,16 +38007,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 133 "parser_cocci_menhir.mly" +# 135 "parser_cocci_menhir.mly" (Parse_aux.info) -# 37621 "parser_cocci_menhir.ml" +# 38013 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_statement = -# 1101 "parser_cocci_menhir.mly" +# 1104 "parser_cocci_menhir.mly" ( tmeta_to_statement _1) -# 37628 "parser_cocci_menhir.ml" +# 38020 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37643,16 +38035,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 132 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Parse_aux.info) -# 37649 "parser_cocci_menhir.ml" +# 38041 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_statement = -# 1103 "parser_cocci_menhir.mly" +# 1106 "parser_cocci_menhir.mly" ( P.meta_stm _1 ) -# 37656 "parser_cocci_menhir.ml" +# 38048 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37676,17 +38068,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 37682 "parser_cocci_menhir.ml" +# 38074 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_option_expr_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_statement = -# 1105 "parser_cocci_menhir.mly" +# 1108 "parser_cocci_menhir.mly" ( P.exp_stm _1 _2 ) -# 37690 "parser_cocci_menhir.ml" +# 38082 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37726,27 +38118,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _5 : 'tv_single_statement = Obj.magic _5 in let _4 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 37732 "parser_cocci_menhir.ml" +# 38124 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr = Obj.magic _3 in let _2 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 37738 "parser_cocci_menhir.ml" +# 38130 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 123 "parser_cocci_menhir.mly" +# 125 "parser_cocci_menhir.mly" (Data.clt) -# 37743 "parser_cocci_menhir.ml" +# 38135 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : 'tv_statement = -# 1107 "parser_cocci_menhir.mly" +# 1110 "parser_cocci_menhir.mly" ( P.ifthen _1 _2 _3 _4 _5 ) -# 37750 "parser_cocci_menhir.ml" +# 38142 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37796,33 +38188,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _7 : 'tv_single_statement = Obj.magic _7 in let _6 : ( -# 123 "parser_cocci_menhir.mly" +# 125 "parser_cocci_menhir.mly" (Data.clt) -# 37802 "parser_cocci_menhir.ml" +# 38194 "parser_cocci_menhir.ml" ) = Obj.magic _6 in let _5 : 'tv_single_statement = Obj.magic _5 in let _4 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 37808 "parser_cocci_menhir.ml" +# 38200 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr = Obj.magic _3 in let _2 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 37814 "parser_cocci_menhir.ml" +# 38206 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 123 "parser_cocci_menhir.mly" +# 125 "parser_cocci_menhir.mly" (Data.clt) -# 37819 "parser_cocci_menhir.ml" +# 38211 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in let _v : 'tv_statement = -# 1109 "parser_cocci_menhir.mly" +# 1112 "parser_cocci_menhir.mly" ( P.ifthenelse _1 _2 _3 _4 _5 _6 _7 ) -# 37826 "parser_cocci_menhir.ml" +# 38218 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37882,39 +38274,39 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _9 : 'tv_single_statement = Obj.magic _9 in let _8 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 37888 "parser_cocci_menhir.ml" +# 38280 "parser_cocci_menhir.ml" ) = Obj.magic _8 in let _7 : 'tv_option_eexpr_ = Obj.magic _7 in let _6 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 37894 "parser_cocci_menhir.ml" +# 38286 "parser_cocci_menhir.ml" ) = Obj.magic _6 in let _5 : 'tv_option_eexpr_ = Obj.magic _5 in let _4 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 37900 "parser_cocci_menhir.ml" +# 38292 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_option_eexpr_ = Obj.magic _3 in let _2 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 37906 "parser_cocci_menhir.ml" +# 38298 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 123 "parser_cocci_menhir.mly" +# 125 "parser_cocci_menhir.mly" (Data.clt) -# 37911 "parser_cocci_menhir.ml" +# 38303 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__9_ in let _v : 'tv_statement = -# 1112 "parser_cocci_menhir.mly" +# 1115 "parser_cocci_menhir.mly" ( P.forloop _1 _2 _3 _4 _5 _6 _7 _8 _9 ) -# 37918 "parser_cocci_menhir.ml" +# 38310 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37954,27 +38346,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _5 : 'tv_single_statement = Obj.magic _5 in let _4 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 37960 "parser_cocci_menhir.ml" +# 38352 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr = Obj.magic _3 in let _2 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 37966 "parser_cocci_menhir.ml" +# 38358 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 123 "parser_cocci_menhir.mly" +# 125 "parser_cocci_menhir.mly" (Data.clt) -# 37971 "parser_cocci_menhir.ml" +# 38363 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : 'tv_statement = -# 1114 "parser_cocci_menhir.mly" +# 1117 "parser_cocci_menhir.mly" ( P.whileloop _1 _2 _3 _4 _5 ) -# 37978 "parser_cocci_menhir.ml" +# 38370 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38023,38 +38415,38 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _7 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 38029 "parser_cocci_menhir.ml" +# 38421 "parser_cocci_menhir.ml" ) = Obj.magic _7 in let _6 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 38034 "parser_cocci_menhir.ml" +# 38426 "parser_cocci_menhir.ml" ) = Obj.magic _6 in let _5 : 'tv_eexpr = Obj.magic _5 in let _4 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 38040 "parser_cocci_menhir.ml" +# 38432 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : ( -# 123 "parser_cocci_menhir.mly" +# 125 "parser_cocci_menhir.mly" (Data.clt) -# 38045 "parser_cocci_menhir.ml" +# 38437 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_single_statement = Obj.magic _2 in let _1 : ( -# 123 "parser_cocci_menhir.mly" +# 125 "parser_cocci_menhir.mly" (Data.clt) -# 38051 "parser_cocci_menhir.ml" +# 38443 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in let _v : 'tv_statement = -# 1116 "parser_cocci_menhir.mly" +# 1119 "parser_cocci_menhir.mly" ( P.doloop _1 _2 _3 _4 _5 _6 _7 ) -# 38058 "parser_cocci_menhir.ml" +# 38450 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38094,23 +38486,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _5 : 'tv_single_statement = Obj.magic _5 in let _4 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 38100 "parser_cocci_menhir.ml" +# 38492 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr_list_option = Obj.magic _3 in let _2 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 38106 "parser_cocci_menhir.ml" +# 38498 "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 = -# 1118 "parser_cocci_menhir.mly" +# 1121 "parser_cocci_menhir.mly" ( P.iterator _1 _2 _3 _4 _5 ) -# 38114 "parser_cocci_menhir.ml" +# 38506 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38164,39 +38556,39 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _8 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 38170 "parser_cocci_menhir.ml" +# 38562 "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 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 38177 "parser_cocci_menhir.ml" +# 38569 "parser_cocci_menhir.ml" ) = Obj.magic _5 in let _4 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 38182 "parser_cocci_menhir.ml" +# 38574 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr = Obj.magic _3 in let _2 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 38188 "parser_cocci_menhir.ml" +# 38580 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 123 "parser_cocci_menhir.mly" +# 125 "parser_cocci_menhir.mly" (Data.clt) -# 38193 "parser_cocci_menhir.ml" +# 38585 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__8_ in let _v : 'tv_statement = -# 1120 "parser_cocci_menhir.mly" +# 1123 "parser_cocci_menhir.mly" ( P.switch _1 _2 _3 _4 _5 (List.concat _6) _7 _8 ) -# 38200 "parser_cocci_menhir.ml" +# 38592 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38225,22 +38617,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 38231 "parser_cocci_menhir.ml" +# 38623 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 123 "parser_cocci_menhir.mly" +# 125 "parser_cocci_menhir.mly" (Data.clt) -# 38237 "parser_cocci_menhir.ml" +# 38629 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_statement = -# 1121 "parser_cocci_menhir.mly" +# 1124 "parser_cocci_menhir.mly" ( P.ret_exp _1 _2 _3 ) -# 38244 "parser_cocci_menhir.ml" +# 38636 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38264,21 +38656,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 38270 "parser_cocci_menhir.ml" +# 38662 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 123 "parser_cocci_menhir.mly" +# 125 "parser_cocci_menhir.mly" (Data.clt) -# 38275 "parser_cocci_menhir.ml" +# 38667 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_statement = -# 1122 "parser_cocci_menhir.mly" +# 1125 "parser_cocci_menhir.mly" ( P.ret _1 _2 ) -# 38282 "parser_cocci_menhir.ml" +# 38674 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38302,21 +38694,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 38308 "parser_cocci_menhir.ml" +# 38700 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 124 "parser_cocci_menhir.mly" +# 126 "parser_cocci_menhir.mly" (Data.clt) -# 38313 "parser_cocci_menhir.ml" +# 38705 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_statement = -# 1123 "parser_cocci_menhir.mly" +# 1126 "parser_cocci_menhir.mly" ( P.break _1 _2 ) -# 38320 "parser_cocci_menhir.ml" +# 38712 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38340,21 +38732,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 38346 "parser_cocci_menhir.ml" +# 38738 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 124 "parser_cocci_menhir.mly" +# 126 "parser_cocci_menhir.mly" (Data.clt) -# 38351 "parser_cocci_menhir.ml" +# 38743 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_statement = -# 1124 "parser_cocci_menhir.mly" +# 1127 "parser_cocci_menhir.mly" ( P.cont _1 _2 ) -# 38358 "parser_cocci_menhir.ml" +# 38750 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38378,17 +38770,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 38384 "parser_cocci_menhir.ml" +# 38776 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_mident = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_statement = -# 1125 "parser_cocci_menhir.mly" +# 1128 "parser_cocci_menhir.mly" ( P.label _1 _2 ) -# 38392 "parser_cocci_menhir.ml" +# 38784 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38417,22 +38809,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 38423 "parser_cocci_menhir.ml" +# 38815 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_disj_ident = Obj.magic _2 in let _1 : ( -# 124 "parser_cocci_menhir.mly" +# 126 "parser_cocci_menhir.mly" (Data.clt) -# 38429 "parser_cocci_menhir.ml" +# 38821 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_statement = -# 1126 "parser_cocci_menhir.mly" +# 1129 "parser_cocci_menhir.mly" ( P.goto _1 _2 _3 ) -# 38436 "parser_cocci_menhir.ml" +# 38828 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38461,22 +38853,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 38467 "parser_cocci_menhir.ml" +# 38859 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_fun_start = Obj.magic _2 in let _1 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 38473 "parser_cocci_menhir.ml" +# 38865 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_statement = -# 1128 "parser_cocci_menhir.mly" +# 1131 "parser_cocci_menhir.mly" ( P.seq _1 _2 _3 ) -# 38480 "parser_cocci_menhir.ml" +# 38872 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38501,16 +38893,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let w : 'tv_list_whenppdecs_ = Obj.magic w in let _1 : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 38507 "parser_cocci_menhir.ml" +# 38899 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos_w_ in let _v : 'tv_stm_dots = -# 1132 "parser_cocci_menhir.mly" +# 1135 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Dots(P.clt2mcode "..." _1, List.concat w)) ) -# 38514 "parser_cocci_menhir.ml" +# 38906 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38544,24 +38936,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let c : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 38550 "parser_cocci_menhir.ml" +# 38942 "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 : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 38557 "parser_cocci_menhir.ml" +# 38949 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos_c_ in let _v : 'tv_stm_dots = -# 1134 "parser_cocci_menhir.mly" +# 1137 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." _1, b, P.clt2mcode "...>" c, List.concat w, false)) ) -# 38565 "parser_cocci_menhir.ml" +# 38957 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38595,24 +38987,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let c : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 38601 "parser_cocci_menhir.ml" +# 38993 "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 : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 38608 "parser_cocci_menhir.ml" +# 39000 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos_c_ in let _v : 'tv_stm_dots = -# 1137 "parser_cocci_menhir.mly" +# 1140 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." _1, b, P.clt2mcode "...+>" c, List.concat w, true)) ) -# 38616 "parser_cocci_menhir.ml" +# 39008 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38631,16 +39023,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let s : ( -# 119 "parser_cocci_menhir.mly" +# 121 "parser_cocci_menhir.mly" (Data.clt) -# 38637 "parser_cocci_menhir.ml" +# 39029 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : 'tv_storage = -# 1061 "parser_cocci_menhir.mly" +# 1064 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Static s ) -# 38644 "parser_cocci_menhir.ml" +# 39036 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38659,16 +39051,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let s : ( -# 119 "parser_cocci_menhir.mly" +# 121 "parser_cocci_menhir.mly" (Data.clt) -# 38665 "parser_cocci_menhir.ml" +# 39057 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : 'tv_storage = -# 1062 "parser_cocci_menhir.mly" +# 1065 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Auto s ) -# 38672 "parser_cocci_menhir.ml" +# 39064 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38687,16 +39079,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let s : ( -# 119 "parser_cocci_menhir.mly" +# 121 "parser_cocci_menhir.mly" (Data.clt) -# 38693 "parser_cocci_menhir.ml" +# 39085 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : 'tv_storage = -# 1063 "parser_cocci_menhir.mly" +# 1066 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Register s ) -# 38700 "parser_cocci_menhir.ml" +# 39092 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38715,16 +39107,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let s : ( -# 119 "parser_cocci_menhir.mly" +# 121 "parser_cocci_menhir.mly" (Data.clt) -# 38721 "parser_cocci_menhir.ml" +# 39113 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : 'tv_storage = -# 1064 "parser_cocci_menhir.mly" +# 1067 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Extern s ) -# 38728 "parser_cocci_menhir.ml" +# 39120 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38744,9 +39136,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_struct_decl = -# 756 "parser_cocci_menhir.mly" +# 759 "parser_cocci_menhir.mly" ( [] ) -# 38750 "parser_cocci_menhir.ml" +# 39142 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38768,9 +39160,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_struct_decl = -# 757 "parser_cocci_menhir.mly" +# 760 "parser_cocci_menhir.mly" ( [_1] ) -# 38774 "parser_cocci_menhir.ml" +# 39166 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38792,9 +39184,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_struct_decl_list = -# 785 "parser_cocci_menhir.mly" +# 788 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS(_1)) ) -# 38798 "parser_cocci_menhir.ml" +# 39190 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38816,9 +39208,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_struct_decl_list_start = -# 788 "parser_cocci_menhir.mly" +# 791 "parser_cocci_menhir.mly" ( _1 ) -# 38822 "parser_cocci_menhir.ml" +# 39214 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38846,9 +39238,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_struct_decl_list_start = -# 789 "parser_cocci_menhir.mly" +# 792 "parser_cocci_menhir.mly" ( _1@_2 ) -# 38852 "parser_cocci_menhir.ml" +# 39244 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38876,9 +39268,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_d_ in let _endpos = _endpos_r_ in let _v : 'tv_struct_decl_list_start = -# 791 "parser_cocci_menhir.mly" +# 794 "parser_cocci_menhir.mly" ( (P.mkddots_one "..." d)::r ) -# 38882 "parser_cocci_menhir.ml" +# 39274 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38897,16 +39289,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 133 "parser_cocci_menhir.mly" +# 135 "parser_cocci_menhir.mly" (Parse_aux.info) -# 38903 "parser_cocci_menhir.ml" +# 39295 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_struct_decl_one = -# 760 "parser_cocci_menhir.mly" +# 763 "parser_cocci_menhir.mly" ( P.meta_field _1 ) -# 38910 "parser_cocci_menhir.ml" +# 39302 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38925,16 +39317,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 135 "parser_cocci_menhir.mly" +# 137 "parser_cocci_menhir.mly" (Parse_aux.list_info) -# 38931 "parser_cocci_menhir.ml" +# 39323 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_struct_decl_one = -# 761 "parser_cocci_menhir.mly" +# 764 "parser_cocci_menhir.mly" ( P.meta_field_list _1 ) -# 38938 "parser_cocci_menhir.ml" +# 39330 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38953,16 +39345,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 133 "parser_cocci_menhir.mly" +# 135 "parser_cocci_menhir.mly" (Parse_aux.info) -# 38959 "parser_cocci_menhir.ml" +# 39351 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_struct_decl_one = -# 762 "parser_cocci_menhir.mly" +# 765 "parser_cocci_menhir.mly" ( tmeta_to_field _1 ) -# 38966 "parser_cocci_menhir.ml" +# 39358 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38991,24 +39383,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 38997 "parser_cocci_menhir.ml" +# 39389 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_midzero_list_struct_decl_one_struct_decl_one_ = Obj.magic t in let lp : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 39003 "parser_cocci_menhir.ml" +# 39395 "parser_cocci_menhir.ml" ) = Obj.magic lp in let _startpos = _startpos_lp_ in let _endpos = _endpos_rp_ in let _v : 'tv_struct_decl_one = -# 764 "parser_cocci_menhir.mly" +# 767 "parser_cocci_menhir.mly" ( let (mids,code) = t in Ast0.wrap (Ast0.DisjDecl(P.clt2mcode "(" lp,code,mids, P.clt2mcode ")" rp)) ) -# 39012 "parser_cocci_menhir.ml" +# 39404 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39037,19 +39429,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 39043 "parser_cocci_menhir.ml" +# 39435 "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_one = -# 768 "parser_cocci_menhir.mly" +# 771 "parser_cocci_menhir.mly" ( let (id,fn) = d in Ast0.wrap(Ast0.UnInit(None,fn t,id,P.clt2mcode ";" pv)) ) -# 39053 "parser_cocci_menhir.ml" +# 39445 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39108,42 +39500,42 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 39114 "parser_cocci_menhir.ml" +# 39506 "parser_cocci_menhir.ml" ) = Obj.magic pv in let rp2 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 39119 "parser_cocci_menhir.ml" +# 39511 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 39125 "parser_cocci_menhir.ml" +# 39517 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 39130 "parser_cocci_menhir.ml" +# 39522 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 168 "parser_cocci_menhir.mly" +# 171 "parser_cocci_menhir.mly" (Data.clt) -# 39136 "parser_cocci_menhir.ml" +# 39528 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 39141 "parser_cocci_menhir.ml" +# 39533 "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_one = -# 772 "parser_cocci_menhir.mly" +# 775 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -39151,7 +39543,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)) ) -# 39155 "parser_cocci_menhir.ml" +# 39547 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39180,9 +39572,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 39186 "parser_cocci_menhir.ml" +# 39578 "parser_cocci_menhir.ml" ) = Obj.magic pv in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident_or_symbol = Obj.magic i in @@ -39192,15 +39584,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 39196 "parser_cocci_menhir.ml" +# 39588 "parser_cocci_menhir.ml" in -# 780 "parser_cocci_menhir.mly" +# 783 "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)) ) -# 39204 "parser_cocci_menhir.ml" +# 39596 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39234,9 +39626,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 176 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" (Data.clt) -# 39240 "parser_cocci_menhir.ml" +# 39632 "parser_cocci_menhir.ml" ) = Obj.magic pv in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident_or_symbol = Obj.magic i in @@ -39248,15 +39640,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 39252 "parser_cocci_menhir.ml" +# 39644 "parser_cocci_menhir.ml" in -# 780 "parser_cocci_menhir.mly" +# 783 "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)) ) -# 39260 "parser_cocci_menhir.ml" +# 39652 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39275,16 +39667,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let s : ( -# 116 "parser_cocci_menhir.mly" +# 118 "parser_cocci_menhir.mly" (Data.clt) -# 39281 "parser_cocci_menhir.ml" +# 39673 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : 'tv_struct_or_union = -# 752 "parser_cocci_menhir.mly" +# 755 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Struct s ) -# 39288 "parser_cocci_menhir.ml" +# 39680 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39303,16 +39695,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let u : ( -# 116 "parser_cocci_menhir.mly" +# 118 "parser_cocci_menhir.mly" (Data.clt) -# 39309 "parser_cocci_menhir.ml" +# 39701 "parser_cocci_menhir.ml" ) = Obj.magic u in let _startpos = _startpos_u_ in let _endpos = _endpos_u_ in let _v : 'tv_struct_or_union = -# 753 "parser_cocci_menhir.mly" +# 756 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Union u ) -# 39316 "parser_cocci_menhir.ml" +# 39708 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39338,7 +39730,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_i_ in let _v : 'tv_sub = -# 1915 "parser_cocci_menhir.mly" +# 1951 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating @@ -39347,7 +39739,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct P.check_inherited_constraint i (function mv -> Ast.MetaExpDecl(Ast.NONE,mv,None)) in [i] ) -# 39351 "parser_cocci_menhir.ml" +# 39743 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39381,7 +39773,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_sub = -# 1924 "parser_cocci_menhir.mly" +# 1960 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating @@ -39391,7 +39783,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct P.check_inherited_constraint i (function mv -> Ast.MetaExpDecl(Ast.NONE,mv,None))) l) -# 39395 "parser_cocci_menhir.ml" +# 39787 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39413,9 +39805,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_top_eexpr = -# 1450 "parser_cocci_menhir.mly" +# 1479 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))) ) -# 39419 "parser_cocci_menhir.ml" +# 39811 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39444,27 +39836,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 39450 "parser_cocci_menhir.ml" +# 39842 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_initialize_list = Obj.magic _2 in let _1 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 39456 "parser_cocci_menhir.ml" +# 39848 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_top_init = -# 2178 "parser_cocci_menhir.mly" +# 2214 "parser_cocci_menhir.mly" ( if P.struct_initializer _2 then let il = P.drop_dot_commas _2 in Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,il,P.clt2mcode "}" _3,false)) else Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,_2,P.clt2mcode "}" _3,true)) ) -# 39468 "parser_cocci_menhir.ml" +# 39860 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39479,9 +39871,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 = -# 2166 "parser_cocci_menhir.mly" +# 2202 "parser_cocci_menhir.mly" ([]) -# 39485 "parser_cocci_menhir.ml" +# 39877 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39507,9 +39899,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_dots = -# 2167 "parser_cocci_menhir.mly" +# 2203 "parser_cocci_menhir.mly" (_2) -# 39513 "parser_cocci_menhir.ml" +# 39905 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39537,9 +39929,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_dots = -# 2168 "parser_cocci_menhir.mly" +# 2204 "parser_cocci_menhir.mly" ((Ast0.wrap(Ast0.Exp(_1)))::_2) -# 39543 "parser_cocci_menhir.ml" +# 39935 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39567,9 +39959,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_dots = -# 2169 "parser_cocci_menhir.mly" +# 2205 "parser_cocci_menhir.mly" (_1@_2) -# 39573 "parser_cocci_menhir.ml" +# 39965 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39595,9 +39987,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_dots_init = -# 2157 "parser_cocci_menhir.mly" +# 2193 "parser_cocci_menhir.mly" (_2) -# 39601 "parser_cocci_menhir.ml" +# 39993 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39625,9 +40017,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_dots_init = -# 2158 "parser_cocci_menhir.mly" +# 2194 "parser_cocci_menhir.mly" ((Ast0.wrap(Ast0.Exp(_1)))::_2) -# 39631 "parser_cocci_menhir.ml" +# 40023 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39655,9 +40047,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_dots_init = -# 2159 "parser_cocci_menhir.mly" +# 2195 "parser_cocci_menhir.mly" (_1@_2) -# 39661 "parser_cocci_menhir.ml" +# 40053 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39672,9 +40064,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 = -# 2162 "parser_cocci_menhir.mly" +# 2198 "parser_cocci_menhir.mly" ([]) -# 39678 "parser_cocci_menhir.ml" +# 40070 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39702,9 +40094,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_exp = -# 2163 "parser_cocci_menhir.mly" +# 2199 "parser_cocci_menhir.mly" (_1::_2) -# 39708 "parser_cocci_menhir.ml" +# 40100 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39719,9 +40111,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 = -# 2172 "parser_cocci_menhir.mly" +# 2208 "parser_cocci_menhir.mly" ([]) -# 39725 "parser_cocci_menhir.ml" +# 40117 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39749,9 +40141,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_stm = -# 2173 "parser_cocci_menhir.mly" +# 2209 "parser_cocci_menhir.mly" (_1::_2) -# 39755 "parser_cocci_menhir.ml" +# 40147 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39779,9 +40171,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_stm = -# 2174 "parser_cocci_menhir.mly" +# 2210 "parser_cocci_menhir.mly" (_1@_2) -# 39785 "parser_cocci_menhir.ml" +# 40177 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39809,9 +40201,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_ = -# 2152 "parser_cocci_menhir.mly" +# 2188 "parser_cocci_menhir.mly" ( _1::_2 ) -# 39815 "parser_cocci_menhir.ml" +# 40207 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39839,9 +40231,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_ = -# 2153 "parser_cocci_menhir.mly" +# 2189 "parser_cocci_menhir.mly" ( (Ast0.wrap(Ast0.Exp(_1)))::_2 ) -# 39845 "parser_cocci_menhir.ml" +# 40237 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39869,9 +40261,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_ = -# 2154 "parser_cocci_menhir.mly" +# 2190 "parser_cocci_menhir.mly" ( _1@_2 ) -# 39875 "parser_cocci_menhir.ml" +# 40267 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39902,9 +40294,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 : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 39908 "parser_cocci_menhir.ml" +# 40300 "parser_cocci_menhir.ml" ) = Obj.magic a0 in let _startpos = _startpos_a0_ in let _endpos = _endpos_b_ in @@ -39912,15 +40304,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let w = w0 in let a = a0 in -# 1142 "parser_cocci_menhir.mly" +# 1145 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Dots(P.clt2mcode "..." a, List.concat w)) ) -# 39918 "parser_cocci_menhir.ml" +# 40310 "parser_cocci_menhir.ml" in -# 2145 "parser_cocci_menhir.mly" +# 2181 "parser_cocci_menhir.mly" ( a::b ) -# 39924 "parser_cocci_menhir.ml" +# 40316 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -39960,16 +40352,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_toplevel_after_dots_init = Obj.magic b in let c0 : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 39966 "parser_cocci_menhir.ml" +# 40358 "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 : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 39973 "parser_cocci_menhir.ml" +# 40365 "parser_cocci_menhir.ml" ) = Obj.magic a0 in let _startpos = _startpos_a0_ in let _endpos = _endpos_b_ in @@ -39979,16 +40371,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let w = w0 in let a = a0 in -# 1146 "parser_cocci_menhir.mly" +# 1149 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." a, b, P.clt2mcode "...>" c, List.concat w, false)) ) -# 39986 "parser_cocci_menhir.ml" +# 40378 "parser_cocci_menhir.ml" in -# 2146 "parser_cocci_menhir.mly" +# 2182 "parser_cocci_menhir.mly" ( a::b ) -# 39992 "parser_cocci_menhir.ml" +# 40384 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -40028,16 +40420,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_toplevel_after_dots_init = Obj.magic b in let c0 : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 40034 "parser_cocci_menhir.ml" +# 40426 "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 : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 40041 "parser_cocci_menhir.ml" +# 40433 "parser_cocci_menhir.ml" ) = Obj.magic a0 in let _startpos = _startpos_a0_ in let _endpos = _endpos_b_ in @@ -40047,16 +40439,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let w = w0 in let a = a0 in -# 1149 "parser_cocci_menhir.mly" +# 1152 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." a, b, P.clt2mcode "...+>" c, List.concat w, true)) ) -# 40054 "parser_cocci_menhir.ml" +# 40446 "parser_cocci_menhir.ml" in -# 2146 "parser_cocci_menhir.mly" +# 2182 "parser_cocci_menhir.mly" ( a::b ) -# 40060 "parser_cocci_menhir.ml" +# 40452 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -40090,16 +40482,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let c0 : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 40096 "parser_cocci_menhir.ml" +# 40488 "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 : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 40103 "parser_cocci_menhir.ml" +# 40495 "parser_cocci_menhir.ml" ) = Obj.magic a0 in let _startpos = _startpos_a0_ in let _endpos = _endpos_c0_ in @@ -40109,16 +40501,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let w = w0 in let a = a0 in -# 1146 "parser_cocci_menhir.mly" +# 1149 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." a, b, P.clt2mcode "...>" c, List.concat w, false)) ) -# 40116 "parser_cocci_menhir.ml" +# 40508 "parser_cocci_menhir.ml" in -# 2147 "parser_cocci_menhir.mly" +# 2183 "parser_cocci_menhir.mly" ( [a] ) -# 40122 "parser_cocci_menhir.ml" +# 40514 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -40152,16 +40544,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let c0 : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 40158 "parser_cocci_menhir.ml" +# 40550 "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 : ( -# 142 "parser_cocci_menhir.mly" +# 145 "parser_cocci_menhir.mly" (Data.clt) -# 40165 "parser_cocci_menhir.ml" +# 40557 "parser_cocci_menhir.ml" ) = Obj.magic a0 in let _startpos = _startpos_a0_ in let _endpos = _endpos_c0_ in @@ -40171,16 +40563,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let w = w0 in let a = a0 in -# 1149 "parser_cocci_menhir.mly" +# 1152 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." a, b, P.clt2mcode "...+>" c, List.concat w, true)) ) -# 40178 "parser_cocci_menhir.ml" +# 40570 "parser_cocci_menhir.ml" in -# 2147 "parser_cocci_menhir.mly" +# 2183 "parser_cocci_menhir.mly" ( [a] ) -# 40184 "parser_cocci_menhir.ml" +# 40576 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -40208,9 +40600,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_ = -# 2148 "parser_cocci_menhir.mly" +# 2184 "parser_cocci_menhir.mly" ( (Ast0.wrap(Ast0.Exp(_1)))::_2 ) -# 40214 "parser_cocci_menhir.ml" +# 40606 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -40238,9 +40630,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_ = -# 2149 "parser_cocci_menhir.mly" +# 2185 "parser_cocci_menhir.mly" ( _1@_2 ) -# 40244 "parser_cocci_menhir.ml" +# 40636 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -40262,9 +40654,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_type_ident = -# 2003 "parser_cocci_menhir.mly" +# 2039 "parser_cocci_menhir.mly" ( _1 ) -# 40268 "parser_cocci_menhir.ml" +# 40660 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -40283,16 +40675,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) -# 40289 "parser_cocci_menhir.ml" +# 40681 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_type_ident = -# 2005 "parser_cocci_menhir.mly" +# 2041 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) ) -# 40296 "parser_cocci_menhir.ml" +# 40688 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -40322,14 +40714,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 40328 "parser_cocci_menhir.ml" +# 40720 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 40333 "parser_cocci_menhir.ml" +# 40725 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -40339,28 +40731,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 635 "parser_cocci_menhir.mly" +# 638 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) -# 40345 "parser_cocci_menhir.ml" +# 40737 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 40351 "parser_cocci_menhir.ml" +# 40743 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 40358 "parser_cocci_menhir.ml" +# 40750 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 40364 "parser_cocci_menhir.ml" +# 40756 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -40390,14 +40782,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 40396 "parser_cocci_menhir.ml" +# 40788 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 40401 "parser_cocci_menhir.ml" +# 40793 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -40407,28 +40799,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 637 "parser_cocci_menhir.mly" +# 640 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) -# 40413 "parser_cocci_menhir.ml" +# 40805 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 40419 "parser_cocci_menhir.ml" +# 40811 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 40426 "parser_cocci_menhir.ml" +# 40818 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 40432 "parser_cocci_menhir.ml" +# 40824 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -40463,19 +40855,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 40469 "parser_cocci_menhir.ml" +# 40861 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 40474 "parser_cocci_menhir.ml" +# 40866 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 40479 "parser_cocci_menhir.ml" +# 40871 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -40487,30 +40879,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 639 "parser_cocci_menhir.mly" +# 642 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) ) -# 40495 "parser_cocci_menhir.ml" +# 40887 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 40501 "parser_cocci_menhir.ml" +# 40893 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 40508 "parser_cocci_menhir.ml" +# 40900 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 40514 "parser_cocci_menhir.ml" +# 40906 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -40540,14 +40932,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 40546 "parser_cocci_menhir.ml" +# 40938 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 40551 "parser_cocci_menhir.ml" +# 40943 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -40557,28 +40949,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 643 "parser_cocci_menhir.mly" +# 646 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) -# 40563 "parser_cocci_menhir.ml" +# 40955 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 40569 "parser_cocci_menhir.ml" +# 40961 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 40576 "parser_cocci_menhir.ml" +# 40968 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 40582 "parser_cocci_menhir.ml" +# 40974 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -40608,14 +41000,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 132 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Parse_aux.info) -# 40614 "parser_cocci_menhir.ml" +# 41006 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 40619 "parser_cocci_menhir.ml" +# 41011 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -40625,29 +41017,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 645 "parser_cocci_menhir.mly" +# 648 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 40632 "parser_cocci_menhir.ml" +# 41024 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 40638 "parser_cocci_menhir.ml" +# 41030 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 40645 "parser_cocci_menhir.ml" +# 41037 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 40651 "parser_cocci_menhir.ml" +# 41043 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -40686,19 +41078,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) -# 40692 "parser_cocci_menhir.ml" +# 41084 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 112 "parser_cocci_menhir.mly" +# 114 "parser_cocci_menhir.mly" (string) -# 40697 "parser_cocci_menhir.ml" +# 41089 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let r1 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 40702 "parser_cocci_menhir.ml" +# 41094 "parser_cocci_menhir.ml" ) = Obj.magic r1 in let _startpos = _startpos_r1_ in let _endpos = _endpos_m_ in @@ -40710,33 +41102,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 648 "parser_cocci_menhir.mly" +# 651 "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*))) ) -# 40721 "parser_cocci_menhir.ml" +# 41113 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 40727 "parser_cocci_menhir.ml" +# 41119 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 40734 "parser_cocci_menhir.ml" +# 41126 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 40740 "parser_cocci_menhir.ml" +# 41132 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -40766,14 +41158,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 40772 "parser_cocci_menhir.ml" +# 41164 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 40777 "parser_cocci_menhir.ml" +# 41169 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -40783,28 +41175,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty1 = ty10 in -# 655 "parser_cocci_menhir.mly" +# 658 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) ) -# 40789 "parser_cocci_menhir.ml" +# 41181 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 40795 "parser_cocci_menhir.ml" +# 41187 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 40802 "parser_cocci_menhir.ml" +# 41194 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 40808 "parser_cocci_menhir.ml" +# 41200 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -40839,19 +41231,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 40845 "parser_cocci_menhir.ml" +# 41237 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 40850 "parser_cocci_menhir.ml" +# 41242 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 40855 "parser_cocci_menhir.ml" +# 41247 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -40863,30 +41255,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 657 "parser_cocci_menhir.mly" +# 660 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) ) -# 40871 "parser_cocci_menhir.ml" +# 41263 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 40877 "parser_cocci_menhir.ml" +# 41269 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 40884 "parser_cocci_menhir.ml" +# 41276 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 40890 "parser_cocci_menhir.ml" +# 41282 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -40921,19 +41313,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 40927 "parser_cocci_menhir.ml" +# 41319 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 40932 "parser_cocci_menhir.ml" +# 41324 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 40937 "parser_cocci_menhir.ml" +# 41329 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -40945,31 +41337,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 661 "parser_cocci_menhir.mly" +# 664 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) -# 40954 "parser_cocci_menhir.ml" +# 41346 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 40960 "parser_cocci_menhir.ml" +# 41352 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 40967 "parser_cocci_menhir.ml" +# 41359 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 40973 "parser_cocci_menhir.ml" +# 41365 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -41009,24 +41401,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty300 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 41015 "parser_cocci_menhir.ml" +# 41407 "parser_cocci_menhir.ml" ) = Obj.magic ty300 in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 41020 "parser_cocci_menhir.ml" +# 41412 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 41025 "parser_cocci_menhir.ml" +# 41417 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 41030 "parser_cocci_menhir.ml" +# 41422 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -41040,32 +41432,32 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 666 "parser_cocci_menhir.mly" +# 669 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongIntType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2; P.clt2mcode "int" ty3])) ) -# 41050 "parser_cocci_menhir.ml" +# 41442 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 41056 "parser_cocci_menhir.ml" +# 41448 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 41063 "parser_cocci_menhir.ml" +# 41455 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 41069 "parser_cocci_menhir.ml" +# 41461 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -41095,14 +41487,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 41101 "parser_cocci_menhir.ml" +# 41493 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 41106 "parser_cocci_menhir.ml" +# 41498 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -41112,28 +41504,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 635 "parser_cocci_menhir.mly" +# 638 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) -# 41118 "parser_cocci_menhir.ml" +# 41510 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 41124 "parser_cocci_menhir.ml" +# 41516 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 41131 "parser_cocci_menhir.ml" +# 41523 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 41137 "parser_cocci_menhir.ml" +# 41529 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -41163,14 +41555,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 41169 "parser_cocci_menhir.ml" +# 41561 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 41174 "parser_cocci_menhir.ml" +# 41566 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -41180,28 +41572,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 637 "parser_cocci_menhir.mly" +# 640 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) -# 41186 "parser_cocci_menhir.ml" +# 41578 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 41192 "parser_cocci_menhir.ml" +# 41584 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 41199 "parser_cocci_menhir.ml" +# 41591 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 41205 "parser_cocci_menhir.ml" +# 41597 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -41236,19 +41628,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 41242 "parser_cocci_menhir.ml" +# 41634 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 41247 "parser_cocci_menhir.ml" +# 41639 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 41252 "parser_cocci_menhir.ml" +# 41644 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -41260,30 +41652,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 639 "parser_cocci_menhir.mly" +# 642 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) ) -# 41268 "parser_cocci_menhir.ml" +# 41660 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 41274 "parser_cocci_menhir.ml" +# 41666 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 41281 "parser_cocci_menhir.ml" +# 41673 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 41287 "parser_cocci_menhir.ml" +# 41679 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -41313,14 +41705,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 41319 "parser_cocci_menhir.ml" +# 41711 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 41324 "parser_cocci_menhir.ml" +# 41716 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -41330,28 +41722,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 643 "parser_cocci_menhir.mly" +# 646 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) -# 41336 "parser_cocci_menhir.ml" +# 41728 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 41342 "parser_cocci_menhir.ml" +# 41734 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 41349 "parser_cocci_menhir.ml" +# 41741 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 41355 "parser_cocci_menhir.ml" +# 41747 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -41381,14 +41773,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 132 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Parse_aux.info) -# 41387 "parser_cocci_menhir.ml" +# 41779 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 41392 "parser_cocci_menhir.ml" +# 41784 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -41398,29 +41790,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 645 "parser_cocci_menhir.mly" +# 648 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 41405 "parser_cocci_menhir.ml" +# 41797 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 41411 "parser_cocci_menhir.ml" +# 41803 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 41418 "parser_cocci_menhir.ml" +# 41810 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 41424 "parser_cocci_menhir.ml" +# 41816 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -41459,19 +41851,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) -# 41465 "parser_cocci_menhir.ml" +# 41857 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 112 "parser_cocci_menhir.mly" +# 114 "parser_cocci_menhir.mly" (string) -# 41470 "parser_cocci_menhir.ml" +# 41862 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let r1 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 41475 "parser_cocci_menhir.ml" +# 41867 "parser_cocci_menhir.ml" ) = Obj.magic r1 in let _startpos = _startpos_r1_ in let _endpos = _endpos_m_ in @@ -41483,33 +41875,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 648 "parser_cocci_menhir.mly" +# 651 "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*))) ) -# 41494 "parser_cocci_menhir.ml" +# 41886 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 41500 "parser_cocci_menhir.ml" +# 41892 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 41507 "parser_cocci_menhir.ml" +# 41899 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 41513 "parser_cocci_menhir.ml" +# 41905 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -41539,14 +41931,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 41545 "parser_cocci_menhir.ml" +# 41937 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 41550 "parser_cocci_menhir.ml" +# 41942 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -41556,28 +41948,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty1 = ty10 in -# 655 "parser_cocci_menhir.mly" +# 658 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) ) -# 41562 "parser_cocci_menhir.ml" +# 41954 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 41568 "parser_cocci_menhir.ml" +# 41960 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 41575 "parser_cocci_menhir.ml" +# 41967 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 41581 "parser_cocci_menhir.ml" +# 41973 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -41612,19 +42004,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 41618 "parser_cocci_menhir.ml" +# 42010 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 41623 "parser_cocci_menhir.ml" +# 42015 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 41628 "parser_cocci_menhir.ml" +# 42020 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -41636,30 +42028,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 657 "parser_cocci_menhir.mly" +# 660 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) ) -# 41644 "parser_cocci_menhir.ml" +# 42036 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 41650 "parser_cocci_menhir.ml" +# 42042 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 41657 "parser_cocci_menhir.ml" +# 42049 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 41663 "parser_cocci_menhir.ml" +# 42055 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -41694,19 +42086,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 41700 "parser_cocci_menhir.ml" +# 42092 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 41705 "parser_cocci_menhir.ml" +# 42097 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 41710 "parser_cocci_menhir.ml" +# 42102 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -41718,31 +42110,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 661 "parser_cocci_menhir.mly" +# 664 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) -# 41727 "parser_cocci_menhir.ml" +# 42119 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 41733 "parser_cocci_menhir.ml" +# 42125 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 41740 "parser_cocci_menhir.ml" +# 42132 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 41746 "parser_cocci_menhir.ml" +# 42138 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -41782,24 +42174,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty300 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 41788 "parser_cocci_menhir.ml" +# 42180 "parser_cocci_menhir.ml" ) = Obj.magic ty300 in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 41793 "parser_cocci_menhir.ml" +# 42185 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 41798 "parser_cocci_menhir.ml" +# 42190 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 41803 "parser_cocci_menhir.ml" +# 42195 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -41813,32 +42205,32 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 666 "parser_cocci_menhir.mly" +# 669 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongIntType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2; P.clt2mcode "int" ty3])) ) -# 41823 "parser_cocci_menhir.ml" +# 42215 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 41829 "parser_cocci_menhir.ml" +# 42221 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 41836 "parser_cocci_menhir.ml" +# 42228 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 41842 "parser_cocci_menhir.ml" +# 42234 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -41863,9 +42255,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 41869 "parser_cocci_menhir.ml" +# 42261 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -41874,28 +42266,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 635 "parser_cocci_menhir.mly" +# 638 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) -# 41880 "parser_cocci_menhir.ml" +# 42272 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 41886 "parser_cocci_menhir.ml" +# 42278 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 41893 "parser_cocci_menhir.ml" +# 42285 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 41899 "parser_cocci_menhir.ml" +# 42291 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -41920,9 +42312,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 41926 "parser_cocci_menhir.ml" +# 42318 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -41931,28 +42323,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 637 "parser_cocci_menhir.mly" +# 640 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) -# 41937 "parser_cocci_menhir.ml" +# 42329 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 41943 "parser_cocci_menhir.ml" +# 42335 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 41950 "parser_cocci_menhir.ml" +# 42342 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 41956 "parser_cocci_menhir.ml" +# 42348 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -41982,14 +42374,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 41988 "parser_cocci_menhir.ml" +# 42380 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 41993 "parser_cocci_menhir.ml" +# 42385 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let _startpos = _startpos_ty100_ in let _endpos = _endpos_m_ in @@ -42000,30 +42392,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 639 "parser_cocci_menhir.mly" +# 642 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) ) -# 42008 "parser_cocci_menhir.ml" +# 42400 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 42014 "parser_cocci_menhir.ml" +# 42406 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 42021 "parser_cocci_menhir.ml" +# 42413 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 42027 "parser_cocci_menhir.ml" +# 42419 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -42048,9 +42440,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 42054 "parser_cocci_menhir.ml" +# 42446 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -42059,28 +42451,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 643 "parser_cocci_menhir.mly" +# 646 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) -# 42065 "parser_cocci_menhir.ml" +# 42457 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 42071 "parser_cocci_menhir.ml" +# 42463 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 42078 "parser_cocci_menhir.ml" +# 42470 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 42084 "parser_cocci_menhir.ml" +# 42476 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -42105,9 +42497,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 132 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Parse_aux.info) -# 42111 "parser_cocci_menhir.ml" +# 42503 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let _startpos = _startpos_p00_ in let _endpos = _endpos_m_ in @@ -42116,29 +42508,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 645 "parser_cocci_menhir.mly" +# 648 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 42123 "parser_cocci_menhir.ml" +# 42515 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 42129 "parser_cocci_menhir.ml" +# 42521 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 42136 "parser_cocci_menhir.ml" +# 42528 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 42142 "parser_cocci_menhir.ml" +# 42534 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -42172,14 +42564,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) -# 42178 "parser_cocci_menhir.ml" +# 42570 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 112 "parser_cocci_menhir.mly" +# 114 "parser_cocci_menhir.mly" (string) -# 42183 "parser_cocci_menhir.ml" +# 42575 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let _startpos = _startpos_r00_ in let _endpos = _endpos_m_ in @@ -42190,33 +42582,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 648 "parser_cocci_menhir.mly" +# 651 "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*))) ) -# 42201 "parser_cocci_menhir.ml" +# 42593 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 42207 "parser_cocci_menhir.ml" +# 42599 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 42214 "parser_cocci_menhir.ml" +# 42606 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 42220 "parser_cocci_menhir.ml" +# 42612 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -42241,9 +42633,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 42247 "parser_cocci_menhir.ml" +# 42639 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let _startpos = _startpos_ty100_ in let _endpos = _endpos_m_ in @@ -42252,28 +42644,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty1 = ty10 in -# 655 "parser_cocci_menhir.mly" +# 658 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) ) -# 42258 "parser_cocci_menhir.ml" +# 42650 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 42264 "parser_cocci_menhir.ml" +# 42656 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 42271 "parser_cocci_menhir.ml" +# 42663 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 42277 "parser_cocci_menhir.ml" +# 42669 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -42303,14 +42695,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 42309 "parser_cocci_menhir.ml" +# 42701 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 42314 "parser_cocci_menhir.ml" +# 42706 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let _startpos = _startpos_ty100_ in let _endpos = _endpos_m_ in @@ -42321,30 +42713,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 657 "parser_cocci_menhir.mly" +# 660 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) ) -# 42329 "parser_cocci_menhir.ml" +# 42721 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 42335 "parser_cocci_menhir.ml" +# 42727 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 42342 "parser_cocci_menhir.ml" +# 42734 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 42348 "parser_cocci_menhir.ml" +# 42740 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -42374,14 +42766,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 42380 "parser_cocci_menhir.ml" +# 42772 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 42385 "parser_cocci_menhir.ml" +# 42777 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let _startpos = _startpos_ty100_ in let _endpos = _endpos_m_ in @@ -42392,31 +42784,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 661 "parser_cocci_menhir.mly" +# 664 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) -# 42401 "parser_cocci_menhir.ml" +# 42793 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 42407 "parser_cocci_menhir.ml" +# 42799 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 42414 "parser_cocci_menhir.ml" +# 42806 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 42420 "parser_cocci_menhir.ml" +# 42812 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -42451,19 +42843,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty300 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 42457 "parser_cocci_menhir.ml" +# 42849 "parser_cocci_menhir.ml" ) = Obj.magic ty300 in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 42462 "parser_cocci_menhir.ml" +# 42854 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 42467 "parser_cocci_menhir.ml" +# 42859 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let _startpos = _startpos_ty100_ in let _endpos = _endpos_m_ in @@ -42476,32 +42868,32 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 666 "parser_cocci_menhir.mly" +# 669 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongIntType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2; P.clt2mcode "int" ty3])) ) -# 42486 "parser_cocci_menhir.ml" +# 42878 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 42492 "parser_cocci_menhir.ml" +# 42884 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 42499 "parser_cocci_menhir.ml" +# 42891 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 42505 "parser_cocci_menhir.ml" +# 42897 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -42526,9 +42918,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 116 "parser_cocci_menhir.mly" +# 118 "parser_cocci_menhir.mly" (Data.clt) -# 42532 "parser_cocci_menhir.ml" +# 42924 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -42537,28 +42929,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 675 "parser_cocci_menhir.mly" +# 678 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) ) -# 42543 "parser_cocci_menhir.ml" +# 42935 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 42549 "parser_cocci_menhir.ml" +# 42941 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 42556 "parser_cocci_menhir.ml" +# 42948 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 42562 "parser_cocci_menhir.ml" +# 42954 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -42588,14 +42980,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 42594 "parser_cocci_menhir.ml" +# 42986 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 42599 "parser_cocci_menhir.ml" +# 42991 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let _startpos = _startpos_ty100_ in let _endpos = _endpos_m_ in @@ -42606,31 +42998,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 677 "parser_cocci_menhir.mly" +# 680 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongDoubleType, [P.clt2mcode "long" ty1;P.clt2mcode "double" ty2])) ) -# 42615 "parser_cocci_menhir.ml" +# 43007 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 42621 "parser_cocci_menhir.ml" +# 43013 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 42628 "parser_cocci_menhir.ml" +# 43020 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 42634 "parser_cocci_menhir.ml" +# 43026 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -42655,9 +43047,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 42661 "parser_cocci_menhir.ml" +# 43053 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -42666,28 +43058,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 682 "parser_cocci_menhir.mly" +# 685 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) ) -# 42672 "parser_cocci_menhir.ml" +# 43064 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 42678 "parser_cocci_menhir.ml" +# 43070 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 42685 "parser_cocci_menhir.ml" +# 43077 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 42691 "parser_cocci_menhir.ml" +# 43083 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -42712,9 +43104,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 42718 "parser_cocci_menhir.ml" +# 43110 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -42723,28 +43115,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 684 "parser_cocci_menhir.mly" +# 687 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) ) -# 42729 "parser_cocci_menhir.ml" +# 43121 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 42735 "parser_cocci_menhir.ml" +# 43127 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 42742 "parser_cocci_menhir.ml" +# 43134 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 42748 "parser_cocci_menhir.ml" +# 43140 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -42769,9 +43161,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 115 "parser_cocci_menhir.mly" +# 117 "parser_cocci_menhir.mly" (Data.clt) -# 42775 "parser_cocci_menhir.ml" +# 43167 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -42780,28 +43172,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 686 "parser_cocci_menhir.mly" +# 689 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.SizeType,[P.clt2mcode "size_t" ty])) ) -# 42786 "parser_cocci_menhir.ml" +# 43178 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 42792 "parser_cocci_menhir.ml" +# 43184 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 42799 "parser_cocci_menhir.ml" +# 43191 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 42805 "parser_cocci_menhir.ml" +# 43197 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -42826,9 +43218,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 115 "parser_cocci_menhir.mly" +# 117 "parser_cocci_menhir.mly" (Data.clt) -# 42832 "parser_cocci_menhir.ml" +# 43224 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -42837,28 +43229,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 688 "parser_cocci_menhir.mly" +# 691 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.SSizeType,[P.clt2mcode "ssize_t" ty])) ) -# 42843 "parser_cocci_menhir.ml" +# 43235 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 42849 "parser_cocci_menhir.ml" +# 43241 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 42856 "parser_cocci_menhir.ml" +# 43248 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 42862 "parser_cocci_menhir.ml" +# 43254 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -42883,9 +43275,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 115 "parser_cocci_menhir.mly" +# 117 "parser_cocci_menhir.mly" (Data.clt) -# 42889 "parser_cocci_menhir.ml" +# 43281 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -42894,28 +43286,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 690 "parser_cocci_menhir.mly" +# 693 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.PtrDiffType,[P.clt2mcode "ptrdiff_t" ty])) ) -# 42900 "parser_cocci_menhir.ml" +# 43292 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 42906 "parser_cocci_menhir.ml" +# 43298 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 42913 "parser_cocci_menhir.ml" +# 43305 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 42919 "parser_cocci_menhir.ml" +# 43311 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -42946,9 +43338,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 : ( -# 116 "parser_cocci_menhir.mly" +# 118 "parser_cocci_menhir.mly" (Data.clt) -# 42952 "parser_cocci_menhir.ml" +# 43344 "parser_cocci_menhir.ml" ) = Obj.magic s00 in let _startpos = _startpos_s00_ in let _endpos = _endpos_m_ in @@ -42959,28 +43351,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let i = i0 in let s = s0 in -# 692 "parser_cocci_menhir.mly" +# 695 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, Some i)) ) -# 42965 "parser_cocci_menhir.ml" +# 43357 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 42971 "parser_cocci_menhir.ml" +# 43363 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 42978 "parser_cocci_menhir.ml" +# 43370 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 42984 "parser_cocci_menhir.ml" +# 43376 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -43020,20 +43412,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 43026 "parser_cocci_menhir.ml" +# 43418 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in let l00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 43032 "parser_cocci_menhir.ml" +# 43424 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let s00 : ( -# 116 "parser_cocci_menhir.mly" +# 118 "parser_cocci_menhir.mly" (Data.clt) -# 43037 "parser_cocci_menhir.ml" +# 43429 "parser_cocci_menhir.ml" ) = Obj.magic s00 in let _startpos = _startpos_s00_ in let _endpos = _endpos_m_ in @@ -43051,35 +43443,35 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 43055 "parser_cocci_menhir.ml" +# 43447 "parser_cocci_menhir.ml" in -# 694 "parser_cocci_menhir.mly" +# 697 "parser_cocci_menhir.mly" ( (if i = None && !Data.in_iso then failwith "enums must be named in the iso file"); Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)), P.clt2mcode "{" l, ids, P.clt2mcode "}" r)) ) -# 43064 "parser_cocci_menhir.ml" +# 43456 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 43070 "parser_cocci_menhir.ml" +# 43462 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 43077 "parser_cocci_menhir.ml" +# 43469 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 43083 "parser_cocci_menhir.ml" +# 43475 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -43124,21 +43516,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 43130 "parser_cocci_menhir.ml" +# 43522 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in let l00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 43136 "parser_cocci_menhir.ml" +# 43528 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let x000 : 'tv_ident = Obj.magic x000 in let s00 : ( -# 116 "parser_cocci_menhir.mly" +# 118 "parser_cocci_menhir.mly" (Data.clt) -# 43142 "parser_cocci_menhir.ml" +# 43534 "parser_cocci_menhir.ml" ) = Obj.magic s00 in let _startpos = _startpos_s00_ in let _endpos = _endpos_m_ in @@ -43159,35 +43551,35 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 43163 "parser_cocci_menhir.ml" +# 43555 "parser_cocci_menhir.ml" in -# 694 "parser_cocci_menhir.mly" +# 697 "parser_cocci_menhir.mly" ( (if i = None && !Data.in_iso then failwith "enums must be named in the iso file"); Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)), P.clt2mcode "{" l, ids, P.clt2mcode "}" r)) ) -# 43172 "parser_cocci_menhir.ml" +# 43564 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 43178 "parser_cocci_menhir.ml" +# 43570 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 43185 "parser_cocci_menhir.ml" +# 43577 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 43191 "parser_cocci_menhir.ml" +# 43583 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -43227,28 +43619,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let i = i0 in let s = s0 in -# 699 "parser_cocci_menhir.mly" +# 702 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) ) -# 43233 "parser_cocci_menhir.ml" +# 43625 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 43239 "parser_cocci_menhir.ml" +# 43631 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 43246 "parser_cocci_menhir.ml" +# 43638 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 43252 "parser_cocci_menhir.ml" +# 43644 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -43288,15 +43680,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 43294 "parser_cocci_menhir.ml" +# 43686 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 43300 "parser_cocci_menhir.ml" +# 43692 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let s00 : 'tv_struct_or_union = Obj.magic s00 in let _startpos = _startpos_s00_ in @@ -43315,36 +43707,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 43319 "parser_cocci_menhir.ml" +# 43711 "parser_cocci_menhir.ml" in -# 702 "parser_cocci_menhir.mly" +# 705 "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)) ) -# 43329 "parser_cocci_menhir.ml" +# 43721 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 43335 "parser_cocci_menhir.ml" +# 43727 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 43342 "parser_cocci_menhir.ml" +# 43734 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 43348 "parser_cocci_menhir.ml" +# 43740 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -43389,15 +43781,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 43395 "parser_cocci_menhir.ml" +# 43787 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 43401 "parser_cocci_menhir.ml" +# 43793 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let x000 : 'tv_type_ident = Obj.magic x000 in let s00 : 'tv_struct_or_union = Obj.magic s00 in @@ -43420,36 +43812,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 43424 "parser_cocci_menhir.ml" +# 43816 "parser_cocci_menhir.ml" in -# 702 "parser_cocci_menhir.mly" +# 705 "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)) ) -# 43434 "parser_cocci_menhir.ml" +# 43826 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 43440 "parser_cocci_menhir.ml" +# 43832 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 43447 "parser_cocci_menhir.ml" +# 43839 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 43453 "parser_cocci_menhir.ml" +# 43845 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -43489,20 +43881,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 43495 "parser_cocci_menhir.ml" +# 43887 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 43501 "parser_cocci_menhir.ml" +# 43893 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let s00 : ( -# 132 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Parse_aux.info) -# 43506 "parser_cocci_menhir.ml" +# 43898 "parser_cocci_menhir.ml" ) = Obj.magic s00 in let _startpos = _startpos_s00_ in let _endpos = _endpos_m_ in @@ -43517,30 +43909,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let l = l0 in let s = s0 in -# 708 "parser_cocci_menhir.mly" +# 711 "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)) ) -# 43525 "parser_cocci_menhir.ml" +# 43917 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 43531 "parser_cocci_menhir.ml" +# 43923 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 43538 "parser_cocci_menhir.ml" +# 43930 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 43544 "parser_cocci_menhir.ml" +# 43936 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -43565,9 +43957,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) -# 43571 "parser_cocci_menhir.ml" +# 43963 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let _startpos = _startpos_p00_ in let _endpos = _endpos_m_ in @@ -43576,28 +43968,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 712 "parser_cocci_menhir.mly" +# 715 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) ) -# 43582 "parser_cocci_menhir.ml" +# 43974 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 43588 "parser_cocci_menhir.ml" +# 43980 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 43595 "parser_cocci_menhir.ml" +# 43987 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 43601 "parser_cocci_menhir.ml" +# 43993 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -43632,14 +44024,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 43638 "parser_cocci_menhir.ml" +# 44030 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 43643 "parser_cocci_menhir.ml" +# 44035 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -43650,15 +44042,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 635 "parser_cocci_menhir.mly" +# 638 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) -# 43656 "parser_cocci_menhir.ml" +# 44048 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 43662 "parser_cocci_menhir.ml" +# 44054 "parser_cocci_menhir.ml" in let cv = @@ -43666,13 +44058,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 43670 "parser_cocci_menhir.ml" +# 44062 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 43676 "parser_cocci_menhir.ml" +# 44068 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -43707,14 +44099,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 43713 "parser_cocci_menhir.ml" +# 44105 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 43718 "parser_cocci_menhir.ml" +# 44110 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -43725,15 +44117,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 637 "parser_cocci_menhir.mly" +# 640 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) -# 43731 "parser_cocci_menhir.ml" +# 44123 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 43737 "parser_cocci_menhir.ml" +# 44129 "parser_cocci_menhir.ml" in let cv = @@ -43741,13 +44133,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 43745 "parser_cocci_menhir.ml" +# 44137 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 43751 "parser_cocci_menhir.ml" +# 44143 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -43787,19 +44179,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 43793 "parser_cocci_menhir.ml" +# 44185 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 43798 "parser_cocci_menhir.ml" +# 44190 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 43803 "parser_cocci_menhir.ml" +# 44195 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -43812,17 +44204,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 639 "parser_cocci_menhir.mly" +# 642 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) ) -# 43820 "parser_cocci_menhir.ml" +# 44212 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 43826 "parser_cocci_menhir.ml" +# 44218 "parser_cocci_menhir.ml" in let cv = @@ -43830,13 +44222,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 43834 "parser_cocci_menhir.ml" +# 44226 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 43840 "parser_cocci_menhir.ml" +# 44232 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -43871,14 +44263,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 43877 "parser_cocci_menhir.ml" +# 44269 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 43882 "parser_cocci_menhir.ml" +# 44274 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -43889,15 +44281,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 643 "parser_cocci_menhir.mly" +# 646 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) -# 43895 "parser_cocci_menhir.ml" +# 44287 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 43901 "parser_cocci_menhir.ml" +# 44293 "parser_cocci_menhir.ml" in let cv = @@ -43905,13 +44297,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 43909 "parser_cocci_menhir.ml" +# 44301 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 43915 "parser_cocci_menhir.ml" +# 44307 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -43946,14 +44338,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 132 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Parse_aux.info) -# 43952 "parser_cocci_menhir.ml" +# 44344 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 43957 "parser_cocci_menhir.ml" +# 44349 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -43964,16 +44356,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 645 "parser_cocci_menhir.mly" +# 648 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 43971 "parser_cocci_menhir.ml" +# 44363 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 43977 "parser_cocci_menhir.ml" +# 44369 "parser_cocci_menhir.ml" in let cv = @@ -43981,13 +44373,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 43985 "parser_cocci_menhir.ml" +# 44377 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 43991 "parser_cocci_menhir.ml" +# 44383 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -44031,19 +44423,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) -# 44037 "parser_cocci_menhir.ml" +# 44429 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 112 "parser_cocci_menhir.mly" +# 114 "parser_cocci_menhir.mly" (string) -# 44042 "parser_cocci_menhir.ml" +# 44434 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let r1 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 44047 "parser_cocci_menhir.ml" +# 44439 "parser_cocci_menhir.ml" ) = Obj.magic r1 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -44056,20 +44448,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 648 "parser_cocci_menhir.mly" +# 651 "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*))) ) -# 44067 "parser_cocci_menhir.ml" +# 44459 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 44073 "parser_cocci_menhir.ml" +# 44465 "parser_cocci_menhir.ml" in let cv = @@ -44077,13 +44469,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 44081 "parser_cocci_menhir.ml" +# 44473 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 44087 "parser_cocci_menhir.ml" +# 44479 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -44118,14 +44510,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 44124 "parser_cocci_menhir.ml" +# 44516 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 44129 "parser_cocci_menhir.ml" +# 44521 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -44136,15 +44528,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty1 = ty10 in -# 655 "parser_cocci_menhir.mly" +# 658 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) ) -# 44142 "parser_cocci_menhir.ml" +# 44534 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 44148 "parser_cocci_menhir.ml" +# 44540 "parser_cocci_menhir.ml" in let cv = @@ -44152,13 +44544,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 44156 "parser_cocci_menhir.ml" +# 44548 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 44162 "parser_cocci_menhir.ml" +# 44554 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -44198,19 +44590,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 44204 "parser_cocci_menhir.ml" +# 44596 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 44209 "parser_cocci_menhir.ml" +# 44601 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 44214 "parser_cocci_menhir.ml" +# 44606 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -44223,17 +44615,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 657 "parser_cocci_menhir.mly" +# 660 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) ) -# 44231 "parser_cocci_menhir.ml" +# 44623 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 44237 "parser_cocci_menhir.ml" +# 44629 "parser_cocci_menhir.ml" in let cv = @@ -44241,13 +44633,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 44245 "parser_cocci_menhir.ml" +# 44637 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 44251 "parser_cocci_menhir.ml" +# 44643 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -44287,19 +44679,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 44293 "parser_cocci_menhir.ml" +# 44685 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 44298 "parser_cocci_menhir.ml" +# 44690 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 44303 "parser_cocci_menhir.ml" +# 44695 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -44312,18 +44704,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 661 "parser_cocci_menhir.mly" +# 664 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) -# 44321 "parser_cocci_menhir.ml" +# 44713 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 44327 "parser_cocci_menhir.ml" +# 44719 "parser_cocci_menhir.ml" in let cv = @@ -44331,13 +44723,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 44335 "parser_cocci_menhir.ml" +# 44727 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 44341 "parser_cocci_menhir.ml" +# 44733 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -44382,24 +44774,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty300 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 44388 "parser_cocci_menhir.ml" +# 44780 "parser_cocci_menhir.ml" ) = Obj.magic ty300 in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 44393 "parser_cocci_menhir.ml" +# 44785 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 44398 "parser_cocci_menhir.ml" +# 44790 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 44403 "parser_cocci_menhir.ml" +# 44795 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -44414,19 +44806,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 666 "parser_cocci_menhir.mly" +# 669 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongIntType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2; P.clt2mcode "int" ty3])) ) -# 44424 "parser_cocci_menhir.ml" +# 44816 "parser_cocci_menhir.ml" in -# 717 "parser_cocci_menhir.mly" +# 720 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 44430 "parser_cocci_menhir.ml" +# 44822 "parser_cocci_menhir.ml" in let cv = @@ -44434,13 +44826,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 44438 "parser_cocci_menhir.ml" +# 44830 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 44444 "parser_cocci_menhir.ml" +# 44836 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -44475,14 +44867,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 44481 "parser_cocci_menhir.ml" +# 44873 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 44486 "parser_cocci_menhir.ml" +# 44878 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -44493,15 +44885,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 635 "parser_cocci_menhir.mly" +# 638 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) -# 44499 "parser_cocci_menhir.ml" +# 44891 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 44505 "parser_cocci_menhir.ml" +# 44897 "parser_cocci_menhir.ml" in let cv = @@ -44509,13 +44901,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 44513 "parser_cocci_menhir.ml" +# 44905 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 44519 "parser_cocci_menhir.ml" +# 44911 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -44550,14 +44942,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 44556 "parser_cocci_menhir.ml" +# 44948 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 44561 "parser_cocci_menhir.ml" +# 44953 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -44568,15 +44960,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 637 "parser_cocci_menhir.mly" +# 640 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) -# 44574 "parser_cocci_menhir.ml" +# 44966 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 44580 "parser_cocci_menhir.ml" +# 44972 "parser_cocci_menhir.ml" in let cv = @@ -44584,13 +44976,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 44588 "parser_cocci_menhir.ml" +# 44980 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 44594 "parser_cocci_menhir.ml" +# 44986 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -44630,19 +45022,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 44636 "parser_cocci_menhir.ml" +# 45028 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 44641 "parser_cocci_menhir.ml" +# 45033 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 44646 "parser_cocci_menhir.ml" +# 45038 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -44655,17 +45047,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 639 "parser_cocci_menhir.mly" +# 642 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) ) -# 44663 "parser_cocci_menhir.ml" +# 45055 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 44669 "parser_cocci_menhir.ml" +# 45061 "parser_cocci_menhir.ml" in let cv = @@ -44673,13 +45065,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 44677 "parser_cocci_menhir.ml" +# 45069 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 44683 "parser_cocci_menhir.ml" +# 45075 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -44714,14 +45106,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 44720 "parser_cocci_menhir.ml" +# 45112 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 44725 "parser_cocci_menhir.ml" +# 45117 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -44732,15 +45124,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 643 "parser_cocci_menhir.mly" +# 646 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) -# 44738 "parser_cocci_menhir.ml" +# 45130 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 44744 "parser_cocci_menhir.ml" +# 45136 "parser_cocci_menhir.ml" in let cv = @@ -44748,13 +45140,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 44752 "parser_cocci_menhir.ml" +# 45144 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 44758 "parser_cocci_menhir.ml" +# 45150 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -44789,14 +45181,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 132 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Parse_aux.info) -# 44795 "parser_cocci_menhir.ml" +# 45187 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 44800 "parser_cocci_menhir.ml" +# 45192 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -44807,16 +45199,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 645 "parser_cocci_menhir.mly" +# 648 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 44814 "parser_cocci_menhir.ml" +# 45206 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 44820 "parser_cocci_menhir.ml" +# 45212 "parser_cocci_menhir.ml" in let cv = @@ -44824,13 +45216,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 44828 "parser_cocci_menhir.ml" +# 45220 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 44834 "parser_cocci_menhir.ml" +# 45226 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -44874,19 +45266,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) -# 44880 "parser_cocci_menhir.ml" +# 45272 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 112 "parser_cocci_menhir.mly" +# 114 "parser_cocci_menhir.mly" (string) -# 44885 "parser_cocci_menhir.ml" +# 45277 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let r1 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 44890 "parser_cocci_menhir.ml" +# 45282 "parser_cocci_menhir.ml" ) = Obj.magic r1 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -44899,20 +45291,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 648 "parser_cocci_menhir.mly" +# 651 "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*))) ) -# 44910 "parser_cocci_menhir.ml" +# 45302 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 44916 "parser_cocci_menhir.ml" +# 45308 "parser_cocci_menhir.ml" in let cv = @@ -44920,13 +45312,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 44924 "parser_cocci_menhir.ml" +# 45316 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 44930 "parser_cocci_menhir.ml" +# 45322 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -44961,14 +45353,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 44967 "parser_cocci_menhir.ml" +# 45359 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 44972 "parser_cocci_menhir.ml" +# 45364 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -44979,15 +45371,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty1 = ty10 in -# 655 "parser_cocci_menhir.mly" +# 658 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) ) -# 44985 "parser_cocci_menhir.ml" +# 45377 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 44991 "parser_cocci_menhir.ml" +# 45383 "parser_cocci_menhir.ml" in let cv = @@ -44995,13 +45387,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 44999 "parser_cocci_menhir.ml" +# 45391 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 45005 "parser_cocci_menhir.ml" +# 45397 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -45041,19 +45433,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 45047 "parser_cocci_menhir.ml" +# 45439 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 45052 "parser_cocci_menhir.ml" +# 45444 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 45057 "parser_cocci_menhir.ml" +# 45449 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -45066,17 +45458,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 657 "parser_cocci_menhir.mly" +# 660 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) ) -# 45074 "parser_cocci_menhir.ml" +# 45466 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 45080 "parser_cocci_menhir.ml" +# 45472 "parser_cocci_menhir.ml" in let cv = @@ -45084,13 +45476,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 45088 "parser_cocci_menhir.ml" +# 45480 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 45094 "parser_cocci_menhir.ml" +# 45486 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -45130,19 +45522,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 45136 "parser_cocci_menhir.ml" +# 45528 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 45141 "parser_cocci_menhir.ml" +# 45533 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 45146 "parser_cocci_menhir.ml" +# 45538 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -45155,18 +45547,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 661 "parser_cocci_menhir.mly" +# 664 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) -# 45164 "parser_cocci_menhir.ml" +# 45556 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 45170 "parser_cocci_menhir.ml" +# 45562 "parser_cocci_menhir.ml" in let cv = @@ -45174,13 +45566,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 45178 "parser_cocci_menhir.ml" +# 45570 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 45184 "parser_cocci_menhir.ml" +# 45576 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -45225,24 +45617,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty300 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 45231 "parser_cocci_menhir.ml" +# 45623 "parser_cocci_menhir.ml" ) = Obj.magic ty300 in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 45236 "parser_cocci_menhir.ml" +# 45628 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 45241 "parser_cocci_menhir.ml" +# 45633 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 117 "parser_cocci_menhir.mly" +# 119 "parser_cocci_menhir.mly" (Data.clt) -# 45246 "parser_cocci_menhir.ml" +# 45638 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -45257,19 +45649,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 666 "parser_cocci_menhir.mly" +# 669 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongIntType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2; P.clt2mcode "int" ty3])) ) -# 45267 "parser_cocci_menhir.ml" +# 45659 "parser_cocci_menhir.ml" in -# 719 "parser_cocci_menhir.mly" +# 722 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 45273 "parser_cocci_menhir.ml" +# 45665 "parser_cocci_menhir.ml" in let cv = @@ -45277,13 +45669,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 45281 "parser_cocci_menhir.ml" +# 45673 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 45287 "parser_cocci_menhir.ml" +# 45679 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -45313,9 +45705,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 45319 "parser_cocci_menhir.ml" +# 45711 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -45325,15 +45717,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 635 "parser_cocci_menhir.mly" +# 638 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) -# 45331 "parser_cocci_menhir.ml" +# 45723 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 45337 "parser_cocci_menhir.ml" +# 45729 "parser_cocci_menhir.ml" in let cv = @@ -45341,13 +45733,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 45345 "parser_cocci_menhir.ml" +# 45737 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 45351 "parser_cocci_menhir.ml" +# 45743 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -45377,9 +45769,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 45383 "parser_cocci_menhir.ml" +# 45775 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -45389,15 +45781,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 637 "parser_cocci_menhir.mly" +# 640 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) -# 45395 "parser_cocci_menhir.ml" +# 45787 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 45401 "parser_cocci_menhir.ml" +# 45793 "parser_cocci_menhir.ml" in let cv = @@ -45405,13 +45797,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 45409 "parser_cocci_menhir.ml" +# 45801 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 45415 "parser_cocci_menhir.ml" +# 45807 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -45446,14 +45838,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 45452 "parser_cocci_menhir.ml" +# 45844 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 45457 "parser_cocci_menhir.ml" +# 45849 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -45465,17 +45857,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 639 "parser_cocci_menhir.mly" +# 642 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) ) -# 45473 "parser_cocci_menhir.ml" +# 45865 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 45479 "parser_cocci_menhir.ml" +# 45871 "parser_cocci_menhir.ml" in let cv = @@ -45483,13 +45875,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 45487 "parser_cocci_menhir.ml" +# 45879 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 45493 "parser_cocci_menhir.ml" +# 45885 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -45519,9 +45911,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 45525 "parser_cocci_menhir.ml" +# 45917 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -45531,15 +45923,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 643 "parser_cocci_menhir.mly" +# 646 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) -# 45537 "parser_cocci_menhir.ml" +# 45929 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 45543 "parser_cocci_menhir.ml" +# 45935 "parser_cocci_menhir.ml" in let cv = @@ -45547,13 +45939,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 45551 "parser_cocci_menhir.ml" +# 45943 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 45557 "parser_cocci_menhir.ml" +# 45949 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -45583,9 +45975,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 132 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Parse_aux.info) -# 45589 "parser_cocci_menhir.ml" +# 45981 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -45595,16 +45987,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 645 "parser_cocci_menhir.mly" +# 648 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 45602 "parser_cocci_menhir.ml" +# 45994 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 45608 "parser_cocci_menhir.ml" +# 46000 "parser_cocci_menhir.ml" in let cv = @@ -45612,13 +46004,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 45616 "parser_cocci_menhir.ml" +# 46008 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 45622 "parser_cocci_menhir.ml" +# 46014 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -45657,14 +46049,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) -# 45663 "parser_cocci_menhir.ml" +# 46055 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 112 "parser_cocci_menhir.mly" +# 114 "parser_cocci_menhir.mly" (string) -# 45668 "parser_cocci_menhir.ml" +# 46060 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -45676,20 +46068,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 648 "parser_cocci_menhir.mly" +# 651 "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*))) ) -# 45687 "parser_cocci_menhir.ml" +# 46079 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 45693 "parser_cocci_menhir.ml" +# 46085 "parser_cocci_menhir.ml" in let cv = @@ -45697,13 +46089,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 45701 "parser_cocci_menhir.ml" +# 46093 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 45707 "parser_cocci_menhir.ml" +# 46099 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -45733,9 +46125,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 45739 "parser_cocci_menhir.ml" +# 46131 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -45745,15 +46137,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty1 = ty10 in -# 655 "parser_cocci_menhir.mly" +# 658 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) ) -# 45751 "parser_cocci_menhir.ml" +# 46143 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 45757 "parser_cocci_menhir.ml" +# 46149 "parser_cocci_menhir.ml" in let cv = @@ -45761,13 +46153,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 45765 "parser_cocci_menhir.ml" +# 46157 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 45771 "parser_cocci_menhir.ml" +# 46163 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -45802,14 +46194,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 45808 "parser_cocci_menhir.ml" +# 46200 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 45813 "parser_cocci_menhir.ml" +# 46205 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -45821,17 +46213,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 657 "parser_cocci_menhir.mly" +# 660 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) ) -# 45829 "parser_cocci_menhir.ml" +# 46221 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 45835 "parser_cocci_menhir.ml" +# 46227 "parser_cocci_menhir.ml" in let cv = @@ -45839,13 +46231,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 45843 "parser_cocci_menhir.ml" +# 46235 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 45849 "parser_cocci_menhir.ml" +# 46241 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -45880,14 +46272,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 45886 "parser_cocci_menhir.ml" +# 46278 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 45891 "parser_cocci_menhir.ml" +# 46283 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -45899,18 +46291,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 661 "parser_cocci_menhir.mly" +# 664 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) -# 45908 "parser_cocci_menhir.ml" +# 46300 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 45914 "parser_cocci_menhir.ml" +# 46306 "parser_cocci_menhir.ml" in let cv = @@ -45918,13 +46310,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 45922 "parser_cocci_menhir.ml" +# 46314 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 45928 "parser_cocci_menhir.ml" +# 46320 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -45964,19 +46356,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty300 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 45970 "parser_cocci_menhir.ml" +# 46362 "parser_cocci_menhir.ml" ) = Obj.magic ty300 in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 45975 "parser_cocci_menhir.ml" +# 46367 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 45980 "parser_cocci_menhir.ml" +# 46372 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -45990,19 +46382,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 666 "parser_cocci_menhir.mly" +# 669 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongIntType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2; P.clt2mcode "int" ty3])) ) -# 46000 "parser_cocci_menhir.ml" +# 46392 "parser_cocci_menhir.ml" in -# 720 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( ty ) -# 46006 "parser_cocci_menhir.ml" +# 46398 "parser_cocci_menhir.ml" in let cv = @@ -46010,13 +46402,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 46014 "parser_cocci_menhir.ml" +# 46406 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 46020 "parser_cocci_menhir.ml" +# 46412 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -46046,9 +46438,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 116 "parser_cocci_menhir.mly" +# 118 "parser_cocci_menhir.mly" (Data.clt) -# 46052 "parser_cocci_menhir.ml" +# 46444 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -46058,15 +46450,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 675 "parser_cocci_menhir.mly" +# 678 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) ) -# 46064 "parser_cocci_menhir.ml" +# 46456 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 46070 "parser_cocci_menhir.ml" +# 46462 "parser_cocci_menhir.ml" in let cv = @@ -46074,13 +46466,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 46078 "parser_cocci_menhir.ml" +# 46470 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 46084 "parser_cocci_menhir.ml" +# 46476 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -46115,14 +46507,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 46121 "parser_cocci_menhir.ml" +# 46513 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 46126 "parser_cocci_menhir.ml" +# 46518 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -46134,18 +46526,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 677 "parser_cocci_menhir.mly" +# 680 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongDoubleType, [P.clt2mcode "long" ty1;P.clt2mcode "double" ty2])) ) -# 46143 "parser_cocci_menhir.ml" +# 46535 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 46149 "parser_cocci_menhir.ml" +# 46541 "parser_cocci_menhir.ml" in let cv = @@ -46153,13 +46545,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 46157 "parser_cocci_menhir.ml" +# 46549 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 46163 "parser_cocci_menhir.ml" +# 46555 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -46189,9 +46581,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 46195 "parser_cocci_menhir.ml" +# 46587 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -46201,15 +46593,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 682 "parser_cocci_menhir.mly" +# 685 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) ) -# 46207 "parser_cocci_menhir.ml" +# 46599 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 46213 "parser_cocci_menhir.ml" +# 46605 "parser_cocci_menhir.ml" in let cv = @@ -46217,13 +46609,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 46221 "parser_cocci_menhir.ml" +# 46613 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 46227 "parser_cocci_menhir.ml" +# 46619 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -46253,9 +46645,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 114 "parser_cocci_menhir.mly" +# 116 "parser_cocci_menhir.mly" (Data.clt) -# 46259 "parser_cocci_menhir.ml" +# 46651 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -46265,15 +46657,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 684 "parser_cocci_menhir.mly" +# 687 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) ) -# 46271 "parser_cocci_menhir.ml" +# 46663 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 46277 "parser_cocci_menhir.ml" +# 46669 "parser_cocci_menhir.ml" in let cv = @@ -46281,13 +46673,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 46285 "parser_cocci_menhir.ml" +# 46677 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 46291 "parser_cocci_menhir.ml" +# 46683 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -46317,9 +46709,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 115 "parser_cocci_menhir.mly" +# 117 "parser_cocci_menhir.mly" (Data.clt) -# 46323 "parser_cocci_menhir.ml" +# 46715 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -46329,15 +46721,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 686 "parser_cocci_menhir.mly" +# 689 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.SizeType,[P.clt2mcode "size_t" ty])) ) -# 46335 "parser_cocci_menhir.ml" +# 46727 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 46341 "parser_cocci_menhir.ml" +# 46733 "parser_cocci_menhir.ml" in let cv = @@ -46345,13 +46737,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 46349 "parser_cocci_menhir.ml" +# 46741 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 46355 "parser_cocci_menhir.ml" +# 46747 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -46381,9 +46773,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 115 "parser_cocci_menhir.mly" +# 117 "parser_cocci_menhir.mly" (Data.clt) -# 46387 "parser_cocci_menhir.ml" +# 46779 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -46393,15 +46785,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 688 "parser_cocci_menhir.mly" +# 691 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.SSizeType,[P.clt2mcode "ssize_t" ty])) ) -# 46399 "parser_cocci_menhir.ml" +# 46791 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 46405 "parser_cocci_menhir.ml" +# 46797 "parser_cocci_menhir.ml" in let cv = @@ -46409,13 +46801,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 46413 "parser_cocci_menhir.ml" +# 46805 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 46419 "parser_cocci_menhir.ml" +# 46811 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -46445,9 +46837,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 115 "parser_cocci_menhir.mly" +# 117 "parser_cocci_menhir.mly" (Data.clt) -# 46451 "parser_cocci_menhir.ml" +# 46843 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -46457,15 +46849,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 690 "parser_cocci_menhir.mly" +# 693 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.PtrDiffType,[P.clt2mcode "ptrdiff_t" ty])) ) -# 46463 "parser_cocci_menhir.ml" +# 46855 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 46469 "parser_cocci_menhir.ml" +# 46861 "parser_cocci_menhir.ml" in let cv = @@ -46473,13 +46865,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 46477 "parser_cocci_menhir.ml" +# 46869 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 46483 "parser_cocci_menhir.ml" +# 46875 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -46515,9 +46907,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 : ( -# 116 "parser_cocci_menhir.mly" +# 118 "parser_cocci_menhir.mly" (Data.clt) -# 46521 "parser_cocci_menhir.ml" +# 46913 "parser_cocci_menhir.ml" ) = Obj.magic s00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -46529,15 +46921,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let i = i0 in let s = s0 in -# 692 "parser_cocci_menhir.mly" +# 695 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, Some i)) ) -# 46535 "parser_cocci_menhir.ml" +# 46927 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 46541 "parser_cocci_menhir.ml" +# 46933 "parser_cocci_menhir.ml" in let cv = @@ -46545,13 +46937,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 46549 "parser_cocci_menhir.ml" +# 46941 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 46555 "parser_cocci_menhir.ml" +# 46947 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -46596,20 +46988,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 46602 "parser_cocci_menhir.ml" +# 46994 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in let l00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 46608 "parser_cocci_menhir.ml" +# 47000 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let s00 : ( -# 116 "parser_cocci_menhir.mly" +# 118 "parser_cocci_menhir.mly" (Data.clt) -# 46613 "parser_cocci_menhir.ml" +# 47005 "parser_cocci_menhir.ml" ) = Obj.magic s00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -46628,22 +47020,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 46632 "parser_cocci_menhir.ml" +# 47024 "parser_cocci_menhir.ml" in -# 694 "parser_cocci_menhir.mly" +# 697 "parser_cocci_menhir.mly" ( (if i = None && !Data.in_iso then failwith "enums must be named in the iso file"); Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)), P.clt2mcode "{" l, ids, P.clt2mcode "}" r)) ) -# 46641 "parser_cocci_menhir.ml" +# 47033 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 46647 "parser_cocci_menhir.ml" +# 47039 "parser_cocci_menhir.ml" in let cv = @@ -46651,13 +47043,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 46655 "parser_cocci_menhir.ml" +# 47047 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 46661 "parser_cocci_menhir.ml" +# 47053 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -46707,21 +47099,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 46713 "parser_cocci_menhir.ml" +# 47105 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in let l00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 46719 "parser_cocci_menhir.ml" +# 47111 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let x000 : 'tv_ident = Obj.magic x000 in let s00 : ( -# 116 "parser_cocci_menhir.mly" +# 118 "parser_cocci_menhir.mly" (Data.clt) -# 46725 "parser_cocci_menhir.ml" +# 47117 "parser_cocci_menhir.ml" ) = Obj.magic s00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -46743,22 +47135,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 46747 "parser_cocci_menhir.ml" +# 47139 "parser_cocci_menhir.ml" in -# 694 "parser_cocci_menhir.mly" +# 697 "parser_cocci_menhir.mly" ( (if i = None && !Data.in_iso then failwith "enums must be named in the iso file"); Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)), P.clt2mcode "{" l, ids, P.clt2mcode "}" r)) ) -# 46756 "parser_cocci_menhir.ml" +# 47148 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 46762 "parser_cocci_menhir.ml" +# 47154 "parser_cocci_menhir.ml" in let cv = @@ -46766,13 +47158,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 46770 "parser_cocci_menhir.ml" +# 47162 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 46776 "parser_cocci_menhir.ml" +# 47168 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -46818,15 +47210,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let i = i0 in let s = s0 in -# 699 "parser_cocci_menhir.mly" +# 702 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) ) -# 46824 "parser_cocci_menhir.ml" +# 47216 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 46830 "parser_cocci_menhir.ml" +# 47222 "parser_cocci_menhir.ml" in let cv = @@ -46834,13 +47226,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 46838 "parser_cocci_menhir.ml" +# 47230 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 46844 "parser_cocci_menhir.ml" +# 47236 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -46885,15 +47277,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 46891 "parser_cocci_menhir.ml" +# 47283 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 46897 "parser_cocci_menhir.ml" +# 47289 "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 @@ -46913,23 +47305,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 46917 "parser_cocci_menhir.ml" +# 47309 "parser_cocci_menhir.ml" in -# 702 "parser_cocci_menhir.mly" +# 705 "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)) ) -# 46927 "parser_cocci_menhir.ml" +# 47319 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 46933 "parser_cocci_menhir.ml" +# 47325 "parser_cocci_menhir.ml" in let cv = @@ -46937,13 +47329,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 46941 "parser_cocci_menhir.ml" +# 47333 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 46947 "parser_cocci_menhir.ml" +# 47339 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -46993,15 +47385,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 46999 "parser_cocci_menhir.ml" +# 47391 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 47005 "parser_cocci_menhir.ml" +# 47397 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let x000 : 'tv_type_ident = Obj.magic x000 in let s00 : 'tv_struct_or_union = Obj.magic s00 in @@ -47025,23 +47417,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 47029 "parser_cocci_menhir.ml" +# 47421 "parser_cocci_menhir.ml" in -# 702 "parser_cocci_menhir.mly" +# 705 "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)) ) -# 47039 "parser_cocci_menhir.ml" +# 47431 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 47045 "parser_cocci_menhir.ml" +# 47437 "parser_cocci_menhir.ml" in let cv = @@ -47049,13 +47441,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 47053 "parser_cocci_menhir.ml" +# 47445 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 47059 "parser_cocci_menhir.ml" +# 47451 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -47100,20 +47492,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 47106 "parser_cocci_menhir.ml" +# 47498 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 170 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" (Data.clt) -# 47112 "parser_cocci_menhir.ml" +# 47504 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let s00 : ( -# 132 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Parse_aux.info) -# 47117 "parser_cocci_menhir.ml" +# 47509 "parser_cocci_menhir.ml" ) = Obj.magic s00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -47129,17 +47521,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let l = l0 in let s = s0 in -# 708 "parser_cocci_menhir.mly" +# 711 "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)) ) -# 47137 "parser_cocci_menhir.ml" +# 47529 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 47143 "parser_cocci_menhir.ml" +# 47535 "parser_cocci_menhir.ml" in let cv = @@ -47147,13 +47539,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 47151 "parser_cocci_menhir.ml" +# 47543 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 47157 "parser_cocci_menhir.ml" +# 47549 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -47183,9 +47575,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) -# 47189 "parser_cocci_menhir.ml" +# 47581 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -47195,15 +47587,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 712 "parser_cocci_menhir.mly" +# 715 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) ) -# 47201 "parser_cocci_menhir.ml" +# 47593 "parser_cocci_menhir.ml" in -# 721 "parser_cocci_menhir.mly" +# 724 "parser_cocci_menhir.mly" ( ty ) -# 47207 "parser_cocci_menhir.ml" +# 47599 "parser_cocci_menhir.ml" in let cv = @@ -47211,13 +47603,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 47215 "parser_cocci_menhir.ml" +# 47607 "parser_cocci_menhir.ml" in -# 742 "parser_cocci_menhir.mly" +# 745 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 47221 "parser_cocci_menhir.ml" +# 47613 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -47246,24 +47638,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 47252 "parser_cocci_menhir.ml" +# 47644 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_midzero_list_mctype_mctype_ = Obj.magic t in let lp : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 47258 "parser_cocci_menhir.ml" +# 47650 "parser_cocci_menhir.ml" ) = Obj.magic lp in let _startpos = _startpos_lp_ in let _endpos = _endpos_rp_ in let _v : 'tv_typedef_ctype = -# 744 "parser_cocci_menhir.mly" +# 747 "parser_cocci_menhir.mly" ( let (mids,code) = t in Ast0.wrap (Ast0.DisjType(P.clt2mcode "(" lp,code,mids, P.clt2mcode ")" rp)) ) -# 47267 "parser_cocci_menhir.ml" +# 47659 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -47282,16 +47674,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 133 "parser_cocci_menhir.mly" +# 135 "parser_cocci_menhir.mly" (Parse_aux.info) -# 47288 "parser_cocci_menhir.ml" +# 47680 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_typedef_ctype = -# 747 "parser_cocci_menhir.mly" +# 750 "parser_cocci_menhir.mly" ( tmeta_to_type _1 ) -# 47295 "parser_cocci_menhir.ml" +# 47687 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -47313,9 +47705,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_typedef_ident = -# 2023 "parser_cocci_menhir.mly" +# 2059 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.TypeName(P.id2mcode _1)) ) -# 47319 "parser_cocci_menhir.ml" +# 47711 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -47334,16 +47726,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 133 "parser_cocci_menhir.mly" +# 135 "parser_cocci_menhir.mly" (Parse_aux.info) -# 47340 "parser_cocci_menhir.ml" +# 47732 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_typedef_ident = -# 2024 "parser_cocci_menhir.mly" +# 2060 "parser_cocci_menhir.mly" ( tmeta_to_type _1 ) -# 47347 "parser_cocci_menhir.ml" +# 47739 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -47362,17 +47754,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 132 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Parse_aux.info) -# 47368 "parser_cocci_menhir.ml" +# 47760 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_typedef_ident = -# 2026 "parser_cocci_menhir.mly" +# 2062 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = _1 in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 47376 "parser_cocci_menhir.ml" +# 47768 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -47394,9 +47786,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_ = -# 1575 "parser_cocci_menhir.mly" +# 1611 "parser_cocci_menhir.mly" ( _1 ) -# 47400 "parser_cocci_menhir.ml" +# 47792 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -47421,16 +47813,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_bis = Obj.magic _2 in let _1 : ( -# 154 "parser_cocci_menhir.mly" +# 157 "parser_cocci_menhir.mly" (Data.clt) -# 47427 "parser_cocci_menhir.ml" +# 47819 "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_ = -# 1577 "parser_cocci_menhir.mly" +# 1613 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) ) -# 47434 "parser_cocci_menhir.ml" +# 47826 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -47455,16 +47847,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_bis = Obj.magic _2 in let _1 : ( -# 154 "parser_cocci_menhir.mly" +# 157 "parser_cocci_menhir.mly" (Data.clt) -# 47461 "parser_cocci_menhir.ml" +# 47853 "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_ = -# 1579 "parser_cocci_menhir.mly" +# 1615 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) ) -# 47468 "parser_cocci_menhir.ml" +# 47860 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -47492,9 +47884,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_ = -# 1581 "parser_cocci_menhir.mly" +# 1617 "parser_cocci_menhir.mly" ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 47498 "parser_cocci_menhir.ml" +# 47890 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -47519,17 +47911,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_bis = Obj.magic _2 in let _1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 47525 "parser_cocci_menhir.ml" +# 47917 "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_ = -# 1583 "parser_cocci_menhir.mly" +# 1619 "parser_cocci_menhir.mly" ( let mcode = P.clt2mcode Ast.Not _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 47533 "parser_cocci_menhir.ml" +# 47925 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -47554,16 +47946,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_bis = Obj.magic _2 in let _1 : ( -# 124 "parser_cocci_menhir.mly" +# 126 "parser_cocci_menhir.mly" (Data.clt) -# 47560 "parser_cocci_menhir.ml" +# 47952 "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_ = -# 1586 "parser_cocci_menhir.mly" +# 1622 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) ) -# 47567 "parser_cocci_menhir.ml" +# 47959 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -47597,29 +47989,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 47603 "parser_cocci_menhir.ml" +# 47995 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 47609 "parser_cocci_menhir.ml" +# 48001 "parser_cocci_menhir.ml" ) = Obj.magic lp in let s : ( -# 124 "parser_cocci_menhir.mly" +# 126 "parser_cocci_menhir.mly" (Data.clt) -# 47614 "parser_cocci_menhir.ml" +# 48006 "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_ = -# 1588 "parser_cocci_menhir.mly" +# 1624 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s, P.clt2mcode "(" lp,t, P.clt2mcode ")" rp)) ) -# 47623 "parser_cocci_menhir.ml" +# 48015 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -47641,9 +48033,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_expr_eexpr_invalid_ = -# 1575 "parser_cocci_menhir.mly" +# 1611 "parser_cocci_menhir.mly" ( _1 ) -# 47647 "parser_cocci_menhir.ml" +# 48039 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -47668,16 +48060,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_bis = Obj.magic _2 in let _1 : ( -# 154 "parser_cocci_menhir.mly" +# 157 "parser_cocci_menhir.mly" (Data.clt) -# 47674 "parser_cocci_menhir.ml" +# 48066 "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_ = -# 1577 "parser_cocci_menhir.mly" +# 1613 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) ) -# 47681 "parser_cocci_menhir.ml" +# 48073 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -47702,16 +48094,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_bis = Obj.magic _2 in let _1 : ( -# 154 "parser_cocci_menhir.mly" +# 157 "parser_cocci_menhir.mly" (Data.clt) -# 47708 "parser_cocci_menhir.ml" +# 48100 "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_ = -# 1579 "parser_cocci_menhir.mly" +# 1615 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) ) -# 47715 "parser_cocci_menhir.ml" +# 48107 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -47739,9 +48131,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_invalid_ = -# 1581 "parser_cocci_menhir.mly" +# 1617 "parser_cocci_menhir.mly" ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 47745 "parser_cocci_menhir.ml" +# 48137 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -47766,17 +48158,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_bis = Obj.magic _2 in let _1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 47772 "parser_cocci_menhir.ml" +# 48164 "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_ = -# 1583 "parser_cocci_menhir.mly" +# 1619 "parser_cocci_menhir.mly" ( let mcode = P.clt2mcode Ast.Not _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 47780 "parser_cocci_menhir.ml" +# 48172 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -47801,16 +48193,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_bis = Obj.magic _2 in let _1 : ( -# 124 "parser_cocci_menhir.mly" +# 126 "parser_cocci_menhir.mly" (Data.clt) -# 47807 "parser_cocci_menhir.ml" +# 48199 "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_ = -# 1586 "parser_cocci_menhir.mly" +# 1622 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) ) -# 47814 "parser_cocci_menhir.ml" +# 48206 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -47844,29 +48236,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 47850 "parser_cocci_menhir.ml" +# 48242 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 47856 "parser_cocci_menhir.ml" +# 48248 "parser_cocci_menhir.ml" ) = Obj.magic lp in let s : ( -# 124 "parser_cocci_menhir.mly" +# 126 "parser_cocci_menhir.mly" (Data.clt) -# 47861 "parser_cocci_menhir.ml" +# 48253 "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_ = -# 1588 "parser_cocci_menhir.mly" +# 1624 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s, P.clt2mcode "(" lp,t, P.clt2mcode ")" rp)) ) -# 47870 "parser_cocci_menhir.ml" +# 48262 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -47888,9 +48280,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_ = -# 1575 "parser_cocci_menhir.mly" +# 1611 "parser_cocci_menhir.mly" ( _1 ) -# 47894 "parser_cocci_menhir.ml" +# 48286 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -47915,16 +48307,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_bis = Obj.magic _2 in let _1 : ( -# 154 "parser_cocci_menhir.mly" +# 157 "parser_cocci_menhir.mly" (Data.clt) -# 47921 "parser_cocci_menhir.ml" +# 48313 "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_ = -# 1577 "parser_cocci_menhir.mly" +# 1613 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) ) -# 47928 "parser_cocci_menhir.ml" +# 48320 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -47949,16 +48341,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_bis = Obj.magic _2 in let _1 : ( -# 154 "parser_cocci_menhir.mly" +# 157 "parser_cocci_menhir.mly" (Data.clt) -# 47955 "parser_cocci_menhir.ml" +# 48347 "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_ = -# 1579 "parser_cocci_menhir.mly" +# 1615 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) ) -# 47962 "parser_cocci_menhir.ml" +# 48354 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -47986,9 +48378,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_ = -# 1581 "parser_cocci_menhir.mly" +# 1617 "parser_cocci_menhir.mly" ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 47992 "parser_cocci_menhir.ml" +# 48384 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48013,17 +48405,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_bis = Obj.magic _2 in let _1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 48019 "parser_cocci_menhir.ml" +# 48411 "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_ = -# 1583 "parser_cocci_menhir.mly" +# 1619 "parser_cocci_menhir.mly" ( let mcode = P.clt2mcode Ast.Not _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 48027 "parser_cocci_menhir.ml" +# 48419 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48048,16 +48440,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_bis = Obj.magic _2 in let _1 : ( -# 124 "parser_cocci_menhir.mly" +# 126 "parser_cocci_menhir.mly" (Data.clt) -# 48054 "parser_cocci_menhir.ml" +# 48446 "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_ = -# 1586 "parser_cocci_menhir.mly" +# 1622 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) ) -# 48061 "parser_cocci_menhir.ml" +# 48453 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48091,29 +48483,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 48097 "parser_cocci_menhir.ml" +# 48489 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 48103 "parser_cocci_menhir.ml" +# 48495 "parser_cocci_menhir.ml" ) = Obj.magic lp in let s : ( -# 124 "parser_cocci_menhir.mly" +# 126 "parser_cocci_menhir.mly" (Data.clt) -# 48108 "parser_cocci_menhir.ml" +# 48500 "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_ = -# 1588 "parser_cocci_menhir.mly" +# 1624 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s, P.clt2mcode "(" lp,t, P.clt2mcode ")" rp)) ) -# 48117 "parser_cocci_menhir.ml" +# 48509 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48135,9 +48527,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_expr_expr_invalid_ = -# 1575 "parser_cocci_menhir.mly" +# 1611 "parser_cocci_menhir.mly" ( _1 ) -# 48141 "parser_cocci_menhir.ml" +# 48533 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48162,16 +48554,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_bis = Obj.magic _2 in let _1 : ( -# 154 "parser_cocci_menhir.mly" +# 157 "parser_cocci_menhir.mly" (Data.clt) -# 48168 "parser_cocci_menhir.ml" +# 48560 "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_ = -# 1577 "parser_cocci_menhir.mly" +# 1613 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) ) -# 48175 "parser_cocci_menhir.ml" +# 48567 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48196,16 +48588,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_bis = Obj.magic _2 in let _1 : ( -# 154 "parser_cocci_menhir.mly" +# 157 "parser_cocci_menhir.mly" (Data.clt) -# 48202 "parser_cocci_menhir.ml" +# 48594 "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_ = -# 1579 "parser_cocci_menhir.mly" +# 1615 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) ) -# 48209 "parser_cocci_menhir.ml" +# 48601 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48233,9 +48625,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_expr_invalid_ = -# 1581 "parser_cocci_menhir.mly" +# 1617 "parser_cocci_menhir.mly" ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 48239 "parser_cocci_menhir.ml" +# 48631 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48260,17 +48652,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_bis = Obj.magic _2 in let _1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 48266 "parser_cocci_menhir.ml" +# 48658 "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_ = -# 1583 "parser_cocci_menhir.mly" +# 1619 "parser_cocci_menhir.mly" ( let mcode = P.clt2mcode Ast.Not _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 48274 "parser_cocci_menhir.ml" +# 48666 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48295,16 +48687,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_bis = Obj.magic _2 in let _1 : ( -# 124 "parser_cocci_menhir.mly" +# 126 "parser_cocci_menhir.mly" (Data.clt) -# 48301 "parser_cocci_menhir.ml" +# 48693 "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_ = -# 1586 "parser_cocci_menhir.mly" +# 1622 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) ) -# 48308 "parser_cocci_menhir.ml" +# 48700 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48338,29 +48730,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 48344 "parser_cocci_menhir.ml" +# 48736 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 48350 "parser_cocci_menhir.ml" +# 48742 "parser_cocci_menhir.ml" ) = Obj.magic lp in let s : ( -# 124 "parser_cocci_menhir.mly" +# 126 "parser_cocci_menhir.mly" (Data.clt) -# 48355 "parser_cocci_menhir.ml" +# 48747 "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_ = -# 1588 "parser_cocci_menhir.mly" +# 1624 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s, P.clt2mcode "(" lp,t, P.clt2mcode ")" rp)) ) -# 48364 "parser_cocci_menhir.ml" +# 48756 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48382,9 +48774,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_expr_bis = -# 1594 "parser_cocci_menhir.mly" +# 1630 "parser_cocci_menhir.mly" ( _1 ) -# 48388 "parser_cocci_menhir.ml" +# 48780 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48409,16 +48801,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_bis = Obj.magic _2 in let _1 : ( -# 154 "parser_cocci_menhir.mly" +# 157 "parser_cocci_menhir.mly" (Data.clt) -# 48415 "parser_cocci_menhir.ml" +# 48807 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_bis = -# 1596 "parser_cocci_menhir.mly" +# 1632 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) ) -# 48422 "parser_cocci_menhir.ml" +# 48814 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48443,16 +48835,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_bis = Obj.magic _2 in let _1 : ( -# 154 "parser_cocci_menhir.mly" +# 157 "parser_cocci_menhir.mly" (Data.clt) -# 48449 "parser_cocci_menhir.ml" +# 48841 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_bis = -# 1598 "parser_cocci_menhir.mly" +# 1634 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) ) -# 48456 "parser_cocci_menhir.ml" +# 48848 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48480,9 +48872,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_bis = -# 1600 "parser_cocci_menhir.mly" +# 1636 "parser_cocci_menhir.mly" ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 48486 "parser_cocci_menhir.ml" +# 48878 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48507,17 +48899,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_bis = Obj.magic _2 in let _1 : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 48513 "parser_cocci_menhir.ml" +# 48905 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_bis = -# 1602 "parser_cocci_menhir.mly" +# 1638 "parser_cocci_menhir.mly" ( let mcode = P.clt2mcode Ast.Not _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 48521 "parser_cocci_menhir.ml" +# 48913 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48542,16 +48934,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_bis = Obj.magic _2 in let _1 : ( -# 124 "parser_cocci_menhir.mly" +# 126 "parser_cocci_menhir.mly" (Data.clt) -# 48548 "parser_cocci_menhir.ml" +# 48940 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_bis = -# 1605 "parser_cocci_menhir.mly" +# 1641 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) ) -# 48555 "parser_cocci_menhir.ml" +# 48947 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48585,29 +48977,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp : ( -# 146 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.clt) -# 48591 "parser_cocci_menhir.ml" +# 48983 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 145 "parser_cocci_menhir.mly" +# 148 "parser_cocci_menhir.mly" (Data.clt) -# 48597 "parser_cocci_menhir.ml" +# 48989 "parser_cocci_menhir.ml" ) = Obj.magic lp in let s : ( -# 124 "parser_cocci_menhir.mly" +# 126 "parser_cocci_menhir.mly" (Data.clt) -# 48602 "parser_cocci_menhir.ml" +# 48994 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_rp_ in let _v : 'tv_unary_expr_bis = -# 1607 "parser_cocci_menhir.mly" +# 1643 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s, P.clt2mcode "(" lp,t, P.clt2mcode ")" rp)) ) -# 48611 "parser_cocci_menhir.ml" +# 49003 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48626,16 +49018,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 162 "parser_cocci_menhir.mly" +# 165 "parser_cocci_menhir.mly" (Data.clt) -# 48632 "parser_cocci_menhir.ml" +# 49024 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_op = -# 1611 "parser_cocci_menhir.mly" +# 1647 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.GetRef _1 ) -# 48639 "parser_cocci_menhir.ml" +# 49031 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48654,16 +49046,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 168 "parser_cocci_menhir.mly" +# 171 "parser_cocci_menhir.mly" (Data.clt) -# 48660 "parser_cocci_menhir.ml" +# 49052 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_op = -# 1612 "parser_cocci_menhir.mly" +# 1648 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.DeRef _1 ) -# 48667 "parser_cocci_menhir.ml" +# 49059 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48682,16 +49074,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 167 "parser_cocci_menhir.mly" +# 170 "parser_cocci_menhir.mly" (Data.clt) -# 48688 "parser_cocci_menhir.ml" +# 49080 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_op = -# 1613 "parser_cocci_menhir.mly" +# 1649 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.UnPlus _1 ) -# 48695 "parser_cocci_menhir.ml" +# 49087 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48710,16 +49102,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 167 "parser_cocci_menhir.mly" +# 170 "parser_cocci_menhir.mly" (Data.clt) -# 48716 "parser_cocci_menhir.ml" +# 49108 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_op = -# 1614 "parser_cocci_menhir.mly" +# 1650 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.UnMinus _1 ) -# 48723 "parser_cocci_menhir.ml" +# 49115 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48738,16 +49130,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 168 "parser_cocci_menhir.mly" +# 171 "parser_cocci_menhir.mly" (Data.clt) -# 48744 "parser_cocci_menhir.ml" +# 49136 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_op = -# 1615 "parser_cocci_menhir.mly" +# 1651 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Tilde _1 ) -# 48751 "parser_cocci_menhir.ml" +# 49143 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48775,9 +49167,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_when_start = -# 2276 "parser_cocci_menhir.mly" +# 2312 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS((Ast0.wrap(Ast0.Exp(_1)))::_2)) ) -# 48781 "parser_cocci_menhir.ml" +# 49173 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48805,9 +49197,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_when_start = -# 2278 "parser_cocci_menhir.mly" +# 2314 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS(_1@_2)) ) -# 48811 "parser_cocci_menhir.ml" +# 49203 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48829,9 +49221,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_w_ in let _endpos = _endpos_w_ in let _v : 'tv_whenppdecs = -# 1153 "parser_cocci_menhir.mly" +# 1156 "parser_cocci_menhir.mly" ( w ) -# 48835 "parser_cocci_menhir.ml" +# 49227 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48865,9 +49257,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_ = -# 2323 "parser_cocci_menhir.mly" +# 2359 "parser_cocci_menhir.mly" ( [Ast0.WhenNot w] ) -# 48871 "parser_cocci_menhir.ml" +# 49263 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48901,9 +49293,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_ = -# 2324 "parser_cocci_menhir.mly" +# 2360 "parser_cocci_menhir.mly" ( [Ast0.WhenAlways w] ) -# 48907 "parser_cocci_menhir.ml" +# 49299 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48933,9 +49325,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_ = -# 2326 "parser_cocci_menhir.mly" +# 2362 "parser_cocci_menhir.mly" ( List.map (function x -> Ast0.WhenModifier(x)) _2 ) -# 48939 "parser_cocci_menhir.ml" +# 49331 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -48969,9 +49361,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_ = -# 2327 "parser_cocci_menhir.mly" +# 2363 "parser_cocci_menhir.mly" ( [Ast0.WhenNotTrue e] ) -# 48975 "parser_cocci_menhir.ml" +# 49367 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -49005,9 +49397,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_ = -# 2328 "parser_cocci_menhir.mly" +# 2364 "parser_cocci_menhir.mly" ( [Ast0.WhenNotFalse e] ) -# 49011 "parser_cocci_menhir.ml" +# 49403 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -49026,16 +49418,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 125 "parser_cocci_menhir.mly" +# 127 "parser_cocci_menhir.mly" (string * Data.clt) -# 49032 "parser_cocci_menhir.ml" +# 49424 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_wrapped_sym_ident = -# 1749 "parser_cocci_menhir.mly" +# 1785 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Id(P.sym2mcode _1)) ) -# 49039 "parser_cocci_menhir.ml" +# 49431 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -49056,106 +49448,106 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let rec script_meta_main = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 2178 lexer lexbuf) : ( -# 230 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 2195 lexer lexbuf) : ( +# 233 "parser_cocci_menhir.mly" ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option) -# 49063 "parser_cocci_menhir.ml" +# 49455 "parser_cocci_menhir.ml" )) and rule_name = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 2101 lexer lexbuf) : ( -# 224 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 2118 lexer lexbuf) : ( +# 227 "parser_cocci_menhir.mly" (Ast_cocci.rulename) -# 49071 "parser_cocci_menhir.ml" +# 49463 "parser_cocci_menhir.ml" )) and reinit = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 2099 lexer lexbuf) : ( -# 202 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 2116 lexer lexbuf) : ( +# 205 "parser_cocci_menhir.mly" (unit) -# 49079 "parser_cocci_menhir.ml" +# 49471 "parser_cocci_menhir.ml" )) and plus_main = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 2063 lexer lexbuf) : ( -# 211 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 2080 lexer lexbuf) : ( +# 214 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 49087 "parser_cocci_menhir.ml" +# 49479 "parser_cocci_menhir.ml" )) and plus_exp_main = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 2055 lexer lexbuf) : ( -# 214 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 2072 lexer lexbuf) : ( +# 217 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 49095 "parser_cocci_menhir.ml" +# 49487 "parser_cocci_menhir.ml" )) and never_used = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 2049 lexer lexbuf) : ( -# 239 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 2066 lexer lexbuf) : ( +# 242 "parser_cocci_menhir.mly" (unit) -# 49103 "parser_cocci_menhir.ml" +# 49495 "parser_cocci_menhir.ml" )) and minus_main = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1964 lexer lexbuf) : ( -# 205 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1981 lexer lexbuf) : ( +# 208 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 49111 "parser_cocci_menhir.ml" +# 49503 "parser_cocci_menhir.ml" )) and minus_exp_main = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1952 lexer lexbuf) : ( -# 208 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1969 lexer lexbuf) : ( +# 211 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 49119 "parser_cocci_menhir.ml" +# 49511 "parser_cocci_menhir.ml" )) and meta_main = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1949 lexer lexbuf) : ( -# 228 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1966 lexer lexbuf) : ( +# 231 "parser_cocci_menhir.mly" ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list) -# 49127 "parser_cocci_menhir.ml" +# 49519 "parser_cocci_menhir.ml" )) and iso_rule_name = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1945 lexer lexbuf) : ( -# 220 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1962 lexer lexbuf) : ( +# 223 "parser_cocci_menhir.mly" (Ast_cocci.rulename) -# 49135 "parser_cocci_menhir.ml" +# 49527 "parser_cocci_menhir.ml" )) and iso_meta_main = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1650 lexer lexbuf) : ( -# 236 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1667 lexer lexbuf) : ( +# 239 "parser_cocci_menhir.mly" ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list) -# 49143 "parser_cocci_menhir.ml" +# 49535 "parser_cocci_menhir.ml" )) and iso_main = fun lexer lexbuf -> (Obj.magic (MenhirInterpreter.entry 18 lexer lexbuf) : ( -# 233 "parser_cocci_menhir.mly" +# 236 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) -# 49151 "parser_cocci_menhir.ml" +# 49543 "parser_cocci_menhir.ml" )) and include_main = fun lexer lexbuf -> (Obj.magic (MenhirInterpreter.entry 0 lexer lexbuf) : ( -# 217 "parser_cocci_menhir.mly" +# 220 "parser_cocci_menhir.mly" (Data.incl_iso list) -# 49159 "parser_cocci_menhir.ml" +# 49551 "parser_cocci_menhir.ml" )) diff --git a/parsing_cocci/parser_cocci_menhir.mli b/parsing_cocci/parser_cocci_menhir.mli index 0e32475..83e6266 100644 --- a/parsing_cocci/parser_cocci_menhir.mli +++ b/parsing_cocci/parser_cocci_menhir.mli @@ -72,7 +72,7 @@ type token = | TParameter | TPOEllipsis of (Data.clt) | TPCEllipsis of (Data.clt) - | TPArob + | TPArob of (Data.clt) | TOrLog of (Data.clt) | TOr of (Data.clt) | TOn diff --git a/parsing_cocci/parser_cocci_menhir.mly b/parsing_cocci/parser_cocci_menhir.mly index c8292ea..448662c 100644 --- a/parsing_cocci/parser_cocci_menhir.mly +++ b/parsing_cocci/parser_cocci_menhir.mly @@ -1,5 +1,7 @@ /* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -136,7 +138,8 @@ let tmeta_to_ident (name,pure,clt) = %token TMetaExp TMetaIdExp TMetaLocalIdExp TMetaConst %token TMetaPos -%token TArob TArobArob TPArob +%token TArob TArobArob +%token TPArob %token TScriptData %token TEllipsis TOEllipsis TCEllipsis TPOEllipsis TPCEllipsis @@ -1181,6 +1184,15 @@ single_statement: List.map (function x -> Ast0.wrap(Ast0.DOTS([x]))) code, mids, P.clt2mcode ")" $3)) } +iso_statement: /* statement or declaration used in statement context */ + statement { $1 } + | decl_var + { match $1 with + [decl] -> + Ast0.wrap + (Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),decl)) + | _ -> failwith "exactly one decl allowed in statement iso" } + case_line: TDefault TDotDot fun_start { Ast0.wrap @@ -1218,8 +1230,8 @@ decl_var: P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv))) d } - | s=ioption(storage) cv=ioption(const_vol) i=pure_ident_or_symbol d=d_ident q=TEq - e=initialize pv=TPtVirg + | s=ioption(storage) cv=ioption(const_vol) i=pure_ident_or_symbol + d=d_ident q=TEq e=initialize pv=TPtVirg { 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 @@ -1240,6 +1252,12 @@ decl_var: | decl_ident TOPar eexpr_list_option TCPar TPtVirg { [Ast0.wrap(Ast0.MacroDecl($1,P.clt2mcode "(" $2,$3, P.clt2mcode ")" $4,P.clt2mcode ";" $5))] } + | decl_ident TOPar eexpr_list_option TCPar q=TEq e=initialize TPtVirg + { [Ast0.wrap + (Ast0.MacroDeclInit + ($1,P.clt2mcode "(" $2,$3, + P.clt2mcode ")" $4,P.clt2mcode "=" q,e, + P.clt2mcode ";" $7))] } | s=ioption(storage) t=ctype lp1=TOPar st=TMul d=d_ident rp1=TCPar lp2=TOPar p=decl_list(name_opt_decl) rp2=TCPar @@ -1275,8 +1293,8 @@ one_decl_var: { 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)) } - | s=ioption(storage) cv=ioption(const_vol) i=pure_ident_or_symbol d=d_ident q=TEq - e=initialize pv=TPtVirg + | s=ioption(storage) cv=ioption(const_vol) i=pure_ident_or_symbol + d=d_ident q=TEq e=initialize pv=TPtVirg { 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 @@ -1297,6 +1315,12 @@ one_decl_var: | decl_ident TOPar eexpr_list_option TCPar TPtVirg { Ast0.wrap(Ast0.MacroDecl($1,P.clt2mcode "(" $2,$3, P.clt2mcode ")" $4,P.clt2mcode ";" $5)) } + | decl_ident TOPar eexpr_list_option TCPar q=TEq e=initialize TPtVirg + { Ast0.wrap + (Ast0.MacroDeclInit + ($1,P.clt2mcode "(" $2,$3, + P.clt2mcode ")" $4,P.clt2mcode "=" q,e, + P.clt2mcode ";" $7)) } | s=ioption(storage) t=ctype lp1=TOPar st=TMul d=d_ident rp1=TCPar lp2=TOPar p=decl_list(name_opt_decl) rp2=TCPar @@ -1439,12 +1463,17 @@ by an expression-specific marker. In that case, the rule eexpr is used, which allows <... ...> anywhere. Hopefully, this will not be too much of a problem in practice. dot_expressions is the most permissive. all three kinds of expressions use -this once an expression_specific token has been seen */ +this once an expression_specific token has been seen +The arg versions don't allow sequences, to avoid conflicting with commas in +argument lists. + */ expr: basic_expr(expr,invalid) { $1 } /* allows ... and nests */ -eexpr: basic_expr(eexpr,dot_expressions) { $1 } +eexpr: pre_basic_expr(eexpr,dot_expressions) { $1 } +eargexpr: basic_expr(eexpr,dot_expressions) { $1 } /* no sequences */ /* allows nests but not .... */ -dexpr: basic_expr(eexpr,nest_expressions) { $1 } +dexpr: pre_basic_expr(eexpr,nest_expressions) { $1 } +dargexpr: basic_expr(eexpr,nest_expressions) { $1 } /* no sequences */ top_eexpr: eexpr { Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp($1)))) } @@ -1470,6 +1499,12 @@ nest_expressions: //whenexp: TWhen TNotEq w=eexpr TLineEnd { w } +pre_basic_expr(recurser,primary_extra): + basic_expr(recurser,primary_extra) { $1 } + | pre_basic_expr(recurser,primary_extra) TComma + basic_expr(recurser,primary_extra) + { Ast0.wrap(Ast0.Sequence($1,P.clt2mcode "," $2,$3)) } + basic_expr(recurser,primary_extra): assign_expr(recurser,primary_extra) { $1 } @@ -1497,7 +1532,8 @@ assign_expr_bis: cond_expr(r,pe): arith_expr(r,pe) { $1 } - | l=arith_expr(r,pe) w=TWhy t=option(eexpr) dd=TDotDot r=eexpr/*see parser_c*/ + | l=arith_expr(r,pe) w=TWhy t=option(eexpr) + dd=TDotDot r=eargexpr/*see parser_c*/ { Ast0.wrap(Ast0.CondExpr (l, P.clt2mcode "?" w, t, P.clt2mcode ":" dd, r)) } @@ -2281,7 +2317,7 @@ when_start: /* arg expr. may contain a type or a explist metavariable */ aexpr: - dexpr { Ast0.set_arg_exp $1 } + dargexpr { Ast0.set_arg_exp $1 } | TMetaExpList { let (nm,lenname,pure,clt) = $1 in let nm = P.clt2mcode nm clt in @@ -2349,7 +2385,7 @@ iso_main: { let ffn x = Ast0.ExprTag x in let fn x = Ast0.TestExprTag x in P.iso_adjust ffn fn e1 el } -| TIsoStatement s1=single_statement sl=list(iso(single_statement)) EOF +| TIsoStatement s1=iso_statement sl=list(iso(iso_statement)) EOF { let fn x = Ast0.StmtTag x in P.iso_adjust fn fn s1 sl } | TIsoType t1=ctype tl=list(iso(ctype)) EOF { let fn x = Ast0.TypeCTag x in P.iso_adjust fn fn t1 tl } diff --git a/parsing_cocci/plus.ml b/parsing_cocci/plus.ml index 386c76c..3f00b18 100644 --- a/parsing_cocci/plus.ml +++ b/parsing_cocci/plus.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/plus.mli b/parsing_cocci/plus.mli index 01f573b..0d9b4c8 100644 --- a/parsing_cocci/plus.mli +++ b/parsing_cocci/plus.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/pretty_print_cocci.ml b/parsing_cocci/pretty_print_cocci.ml index 7d0ab01..96236b5 100644 --- a/parsing_cocci/pretty_print_cocci.ml +++ b/parsing_cocci/pretty_print_cocci.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -230,6 +232,9 @@ let rec expression e = | Ast.Assignment(left,op,right,simple) -> expression left; print_string " "; mcode assignOp op; print_string " "; expression right + | Ast.Sequence(left,op,right) -> + expression left; mcode print_string op; + print_string " "; expression right | Ast.CondExpr(exp1,why,exp2,colon,exp3) -> expression exp1; print_string " "; mcode print_string why; print_option (function e -> print_string " "; expression e) exp2; @@ -271,6 +276,7 @@ let rec expression e = | Ast.MetaExpr(name,_,keep,ty,form,inherited) -> mcode print_meta name; print_type keep inherited ty | Ast.MetaExprList(name,_,_,_) -> mcode print_meta name + | Ast.AsExpr(exp,asexp) -> expression exp; print_string "@"; expression asexp | Ast.EComma(cm) -> mcode print_string cm; print_space() | Ast.DisjExpr(exp_list) -> print_disj_list expression exp_list | Ast.NestExpr(starter,expr_dots,ender,Some whencode,multi) -> @@ -352,9 +358,10 @@ and storage = function and fullType ft = match Ast.unwrap ft with - Ast.Type(cv,ty) -> + Ast.Type(_,cv,ty) -> print_option (function x -> mcode const_vol x; print_string " ") cv; typeC ty + | Ast.AsType(ty,asty) -> fullType ty; print_string "@"; fullType asty | Ast.DisjType(decls) -> print_disj_list fullType decls | Ast.OptType(ty) -> print_string "?"; fullType ty | Ast.UniqueType(ty) -> print_string "!"; fullType ty @@ -442,7 +449,7 @@ and const_vol = function and print_named_type ty id = match Ast.unwrap ty with - Ast.Type(None,ty1) -> + Ast.Type(_,None,ty1) -> (match Ast.unwrap ty1 with Ast.FunctionPointer(ty,lp1,star,rp1,lp2,params,rp2) -> print_function_pointer (ty,lp1,star,rp1,lp2,params,rp2) @@ -455,7 +462,10 @@ and print_named_type ty id = match Ast.unwrap ty with Ast.Array(ty,lb,size,rb) -> (match Ast.unwrap ty with - Ast.Type(None,ty) -> + Ast.Type(_,cv,ty) -> + print_option + (function x -> mcode const_vol x; print_string " ") + cv; loop ty (function _ -> k (); @@ -473,6 +483,8 @@ and declaration d = Ast.MetaDecl(name,_,_) | Ast.MetaField(name,_,_) | Ast.MetaFieldList(name,_,_,_) -> mcode print_meta name + | Ast.AsDecl(decl,asdecl) -> declaration decl; print_string "@"; + declaration asdecl | Ast.Init(stg,ty,id,eq,ini,sem) -> print_option (mcode storage) stg; print_named_type ty id; print_string " "; mcode print_string eq; @@ -484,6 +496,12 @@ and declaration d = ident name; mcode print_string_box lp; dots (function _ -> ()) expression args; close_box(); mcode print_string rp; mcode print_string sem + | Ast.MacroDeclInit(name,lp,args,rp,eq,ini,sem) -> + ident name; mcode print_string_box lp; + dots (function _ -> ()) expression args; + close_box(); mcode print_string rp; + print_string " "; mcode print_string eq; + print_string " "; initialiser ini; mcode print_string sem | Ast.TyDecl(ty,sem) -> fullType ty; mcode print_string sem | Ast.Typedef(stg,ty,id,sem) -> mcode print_string stg; print_string " "; fullType ty; typeC id; @@ -504,6 +522,8 @@ and initialiser i = mcode print_meta name; print_string " " | Ast.MetaInitList(name,_,_,_) -> mcode print_meta name; print_string " " + | Ast.AsInit(ini,asini) -> initialiser ini; print_string "@"; + initialiser asini | Ast.InitExpr(exp) -> expression exp | Ast.ArInitList(lb,initlist,rb) -> mcode print_string lb; open_box 0; @@ -723,6 +743,8 @@ and statement arity s = | Ast.Define(header,body) -> rule_elem arity header; print_string " "; dots force_newline (statement arity) body + | Ast.AsStmt(stm,asstm) -> + statement arity stm; print_string "@"; statement arity asstm | Ast.Nest(starter,stmt_dots,ender,whn,multi,_,_) -> print_string arity; nest_dots starter ender (statement arity) diff --git a/parsing_cocci/pretty_print_cocci.mli b/parsing_cocci/pretty_print_cocci.mli index 75986c3..b178fab 100644 --- a/parsing_cocci/pretty_print_cocci.mli +++ b/parsing_cocci/pretty_print_cocci.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/safe_for_multi_decls.ml b/parsing_cocci/safe_for_multi_decls.ml index 572d14e..75fb027 100644 --- a/parsing_cocci/safe_for_multi_decls.ml +++ b/parsing_cocci/safe_for_multi_decls.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/safe_for_multi_decls.mli b/parsing_cocci/safe_for_multi_decls.mli index faf9276..aed1c17 100644 --- a/parsing_cocci/safe_for_multi_decls.mli +++ b/parsing_cocci/safe_for_multi_decls.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/semantic_cocci.ml b/parsing_cocci/semantic_cocci.ml index b8a9ccb..165008a 100644 --- a/parsing_cocci/semantic_cocci.ml +++ b/parsing_cocci/semantic_cocci.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/simple_assignments.ml b/parsing_cocci/simple_assignments.ml index 08df9d9..54d355e 100644 --- a/parsing_cocci/simple_assignments.ml +++ b/parsing_cocci/simple_assignments.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/simple_assignments.mli b/parsing_cocci/simple_assignments.mli index 5a45d93..06cacf9 100644 --- a/parsing_cocci/simple_assignments.mli +++ b/parsing_cocci/simple_assignments.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/single_statement.ml b/parsing_cocci/single_statement.ml index 614af55..cc0d180 100644 --- a/parsing_cocci/single_statement.ml +++ b/parsing_cocci/single_statement.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -142,6 +144,7 @@ let rec left_expression e = | Ast0.Constant(const) -> modif_before_mcode const | Ast0.FunCall(fn,lp,args,rp) -> left_expression fn | Ast0.Assignment(left,op,right,_) -> left_expression left + | Ast0.Sequence(left,op,right) -> left_expression left | Ast0.CondExpr(exp1,why,exp2,colon,exp3) -> left_expression exp1 | Ast0.Postfix(exp,op) -> left_expression exp | Ast0.Infix(exp,op) -> modif_before_mcode op @@ -167,6 +170,7 @@ let rec left_expression e = | Ast0.Edots(dots,_) | Ast0.Ecircles(dots,_) | Ast0.Estars(dots,_) -> false | Ast0.OptExp(exp) -> left_expression exp | Ast0.UniqueExp(exp) -> left_expression exp + | Ast0.AsExpr _ -> failwith "not possible" (* --------------------------------------------------------------------- *) (* Types *) @@ -191,6 +195,8 @@ and left_typeC t = | Ast0.DisjType(lp,types,mids,rp) -> List.exists left_typeC types | Ast0.OptType(ty) -> left_typeC ty | Ast0.UniqueType(ty) -> left_typeC ty + | Ast0.AsType _ -> failwith "not possible" + (* --------------------------------------------------------------------- *) (* Variable declaration *) @@ -208,12 +214,14 @@ and left_declaration d = | Ast0.UnInit(Some stg,ty,id,sem) -> modif_before_mcode stg | Ast0.UnInit(None,ty,id,sem) -> left_typeC ty | Ast0.MacroDecl(name,lp,args,rp,sem) -> left_ident name + | Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem) -> left_ident name | Ast0.TyDecl(ty,sem) -> left_typeC ty | Ast0.Typedef(stg,ty,id,sem) -> modif_before_mcode stg | Ast0.DisjDecl(_,decls,_,_) -> List.exists left_declaration decls | Ast0.Ddots(dots,_) -> false | Ast0.OptDecl(decl) -> left_declaration decl | Ast0.UniqueDecl(decl) -> left_declaration decl + | Ast0.AsDecl _ -> failwith "not possible" and right_declaration d = modif_before d or @@ -224,12 +232,14 @@ and right_declaration d = | Ast0.Init(_,ty,id,eq,ini,sem) -> modif_after_mcode sem | Ast0.UnInit(_,ty,id,sem) -> modif_after_mcode sem | Ast0.MacroDecl(name,lp,args,rp,sem) -> modif_after_mcode sem + | Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem) -> modif_after_mcode sem | Ast0.TyDecl(ty,sem) -> modif_after_mcode sem | Ast0.Typedef(stg,ty,id,sem) -> modif_after_mcode sem | Ast0.DisjDecl(_,decls,_,_) -> List.exists right_declaration decls | Ast0.Ddots(dots,_) -> false | Ast0.OptDecl(decl) -> right_declaration decl | Ast0.UniqueDecl(decl) -> right_declaration decl + | Ast0.AsDecl _ -> failwith "not possible" (* --------------------------------------------------------------------- *) (* Top-level code *) @@ -275,6 +285,7 @@ and left_statement s = | Ast0.Define(def,id,params,body) -> modif_before_mcode def | Ast0.OptStm(re) -> left_statement re | Ast0.UniqueStm(re) -> left_statement re + | Ast0.AsStmt _ -> failwith "not possible" and right_statement s = modif_after s or @@ -316,6 +327,7 @@ and right_statement s = | Ast0.Define(def,id,params,body) -> right_dots right_statement body | Ast0.OptStm(re) -> right_statement re | Ast0.UniqueStm(re) -> right_statement re + | Ast0.AsStmt _ -> failwith "not possible" (* --------------------------------------------------------------------- *) @@ -624,6 +636,7 @@ let rec statement dots_before dots_after s = | Ast0.UniqueStm(re) -> Ast0.rewrap s (Ast0.UniqueStm(statement dots_before dots_after re)) + | Ast0.AsStmt _ -> failwith "not possible" and case_line c = Ast0.rewrap c diff --git a/parsing_cocci/single_statement.mli b/parsing_cocci/single_statement.mli index 6b43ffc..49f0851 100644 --- a/parsing_cocci/single_statement.mli +++ b/parsing_cocci/single_statement.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/test.cocci b/parsing_cocci/test.cocci index 8dc1a95..d1831f4 100644 --- a/parsing_cocci/test.cocci +++ b/parsing_cocci/test.cocci @@ -1,4 +1,6 @@ -// Copyright 2010, INRIA, University of Copenhagen +// Copyright 2012, INRIA +// Julia Lawall, Gilles Muller +// Copyright 2010-2011, 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 diff --git a/parsing_cocci/test2.cocci b/parsing_cocci/test2.cocci index 2c4e050..c5d7172 100644 --- a/parsing_cocci/test2.cocci +++ b/parsing_cocci/test2.cocci @@ -1,4 +1,6 @@ -// Copyright 2010, INRIA, University of Copenhagen +// Copyright 2012, INRIA +// Julia Lawall, Gilles Muller +// Copyright 2010-2011, 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 diff --git a/parsing_cocci/test_exps.ml b/parsing_cocci/test_exps.ml index b4843b2..83d01ca 100644 --- a/parsing_cocci/test_exps.ml +++ b/parsing_cocci/test_exps.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/test_exps.mli b/parsing_cocci/test_exps.mli index 35f1d00..59cbbfa 100644 --- a/parsing_cocci/test_exps.mli +++ b/parsing_cocci/test_exps.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/top_level.ml b/parsing_cocci/top_level.ml index a9e7a2a..aff803c 100644 --- a/parsing_cocci/top_level.ml +++ b/parsing_cocci/top_level.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/top_level.mli b/parsing_cocci/top_level.mli index da2f172..bec8c57 100644 --- a/parsing_cocci/top_level.mli +++ b/parsing_cocci/top_level.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/type_cocci.ml b/parsing_cocci/type_cocci.ml index ead32f6..b628e71 100644 --- a/parsing_cocci/type_cocci.ml +++ b/parsing_cocci/type_cocci.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/type_cocci.mli b/parsing_cocci/type_cocci.mli index 0ad1da9..197589a 100644 --- a/parsing_cocci/type_cocci.mli +++ b/parsing_cocci/type_cocci.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/type_infer.ml b/parsing_cocci/type_infer.ml index 5d5f68b..292b580 100644 --- a/parsing_cocci/type_infer.ml +++ b/parsing_cocci/type_infer.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -165,6 +167,7 @@ let rec propagate_types env = | Ast0.Assignment(exp1,op,exp2,_) -> let ty = lub_type (Ast0.get_type exp1) (Ast0.get_type exp2) in Ast0.set_type exp1 ty; Ast0.set_type exp2 ty; ty + | Ast0.Sequence(exp1,op,exp2) -> Ast0.get_type exp2 | Ast0.CondExpr(exp1,why,Some exp2,colon,exp3) -> let ty = lub_type (Ast0.get_type exp2) (Ast0.get_type exp3) in Ast0.set_type exp2 ty; Ast0.set_type exp3 ty; ty @@ -279,7 +282,8 @@ let rec propagate_types env = | Ast0.Estars(_,Some e) -> let _ = r.VT0.combiner_rec_expression e in None | Ast0.OptExp(exp) -> Ast0.get_type exp - | Ast0.UniqueExp(exp) -> Ast0.get_type exp in + | Ast0.UniqueExp(exp) -> Ast0.get_type exp + | Ast0.AsExpr _ -> failwith "not possible" in Ast0.set_type e ty; ty in @@ -333,14 +337,16 @@ let rec propagate_types env = Ast0.MetaDecl(_,_) | Ast0.MetaField(_,_) | Ast0.MetaFieldList(_,_,_) -> [] | Ast0.Init(_,ty,id,_,exp,_) -> - let _ = - (propagate_types env).VT0.combiner_rec_initialiser exp in + let _ = (propagate_types env).VT0.combiner_rec_initialiser exp in let ty = Ast0.ast0_type_to_type ty in List.map (function i -> (i,ty)) (strip id) | Ast0.UnInit(_,ty,id,_) -> let ty = Ast0.ast0_type_to_type ty in List.map (function i -> (i,ty)) (strip id) | Ast0.MacroDecl(_,_,_,_,_) -> [] + | Ast0.MacroDeclInit(_,_,_,_,_,exp,_) -> + let _ = (propagate_types env).VT0.combiner_rec_initialiser exp in + [] | Ast0.TyDecl(ty,_) -> [] (* pad: should handle typedef one day and add a binding *) | Ast0.Typedef(_,_,_,_) -> [] @@ -348,7 +354,8 @@ let rec propagate_types env = List.concat(List.map (process_decl env) disjs) | Ast0.Ddots(_,_) -> [] (* not in a statement list anyway *) | Ast0.OptDecl(decl) -> process_decl env decl - | Ast0.UniqueDecl(decl) -> process_decl env decl in + | Ast0.UniqueDecl(decl) -> process_decl env decl + | Ast0.AsDecl _ -> failwith "not possible" in let statement_dots r k d = match Ast0.unwrap d with diff --git a/parsing_cocci/type_infer.mli b/parsing_cocci/type_infer.mli index 893e983..06d47b0 100644 --- a/parsing_cocci/type_infer.mli +++ b/parsing_cocci/type_infer.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/unify_ast.ml b/parsing_cocci/unify_ast.ml index 413b4eb..f094b70 100644 --- a/parsing_cocci/unify_ast.ml +++ b/parsing_cocci/unify_ast.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -156,6 +158,8 @@ and unify_expression e1 e2 = if unify_mcode op1 op2 then conjunct_bindings (unify_expression l1 l2) (unify_expression r1 r2) else return false + | (Ast.Sequence(l1,_,r1),Ast.Sequence(l2,_,r2)) -> + conjunct_bindings (unify_expression l1 l2) (unify_expression r1 r2) | (Ast.CondExpr(tst1,q1,thn1,c1,els1),Ast.CondExpr(tst2,q2,thn2,c2,els2)) -> conjunct_bindings (unify_expression tst1 tst2) (conjunct_bindings (unify_option unify_expression thn1 thn2) @@ -195,6 +199,13 @@ and unify_expression e1 e2 = | (_,Ast.MetaExpr(_,_,_,_,_,_)) | (_,Ast.MetaExprList(_,_,_,_)) -> return true + | (Ast.AsExpr(exp1,asexp1),_) -> + disjunct_all_bindings + (List.map (function x -> unify_expression x e2) [exp1;asexp1]) + | (_,Ast.AsExpr(exp2,asexp2)) -> + disjunct_all_bindings + (List.map (function x -> unify_expression x e1) [exp2;asexp2]) + | (Ast.EComma(cm1),Ast.EComma(cm2)) -> return true | (Ast.DisjExpr(e1),_) -> @@ -220,10 +231,16 @@ and unify_expression e1 e2 = and unify_fullType ft1 ft2 = match (Ast.unwrap ft1,Ast.unwrap ft2) with - (Ast.Type(cv1,ty1),Ast.Type(cv2,ty2)) -> + (Ast.Type(_,cv1,ty1),Ast.Type(_,cv2,ty2)) -> if bool_unify_option unify_mcode cv1 cv2 then unify_typeC ty1 ty2 else return false + | (Ast.AsType(ty1,asty1),_) -> + disjunct_all_bindings + (List.map (function x -> unify_fullType x ft2) [ty1;asty1]) + | (_,Ast.AsType(ty2,asty2)) -> + disjunct_all_bindings + (List.map (function x -> unify_fullType x ft1) [ty2;asty2]) | (Ast.DisjType(ft1),_) -> disjunct_all_bindings (List.map (function x -> unify_fullType x ft2) ft1) | (_,Ast.DisjType(ft2)) -> @@ -312,6 +329,11 @@ and unify_declaration d1 d2 = Ast.MacroDecl(n2,lp2,args2,rp2,sem2)) -> conjunct_bindings (unify_ident n1 n2) (unify_dots unify_expression edots args1 args2) + | (Ast.MacroDeclInit(n1,lp1,args1,rp1,eq1,ini1,sem1), + Ast.MacroDeclInit(n2,lp2,args2,rp2,eq2,ini2,sem2)) -> + conjunct_bindings (unify_ident n1 n2) + (conjunct_bindings (unify_dots unify_expression edots args1 args2) + (unify_initialiser ini1 ini2)) | (Ast.TyDecl(ft1,s1),Ast.TyDecl(ft2,s2)) -> unify_fullType ft1 ft2 | (Ast.Typedef(stg1,ft1,id1,s1),Ast.Typedef(stg2,ft2,id2,s2)) -> conjunct_bindings (unify_fullType ft1 ft2) (unify_typeC id1 id2) diff --git a/parsing_cocci/unify_ast.mli b/parsing_cocci/unify_ast.mli index 87b6f46..534f7f9 100644 --- a/parsing_cocci/unify_ast.mli +++ b/parsing_cocci/unify_ast.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/unitary_ast0.ml b/parsing_cocci/unitary_ast0.ml index c01fab6..9746e86 100644 --- a/parsing_cocci/unitary_ast0.ml +++ b/parsing_cocci/unitary_ast0.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/unitary_ast0.mli b/parsing_cocci/unitary_ast0.mli index 2361df1..334df3e 100644 --- a/parsing_cocci/unitary_ast0.mli +++ b/parsing_cocci/unitary_ast0.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/unparse_ast0.ml b/parsing_cocci/unparse_ast0.ml index 4e108b5..4ac55e1 100644 --- a/parsing_cocci/unparse_ast0.ml +++ b/parsing_cocci/unparse_ast0.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -43,13 +45,14 @@ let print_between = Common.print_between (* --------------------------------------------------------------------- *) (* Positions *) -let meta_pos l = +let rec meta_pos l = List.iter - (function - Ast0.MetaPos(name,_,_) -> - print_string "@"; - let (_,name) = Ast0.unwrap_mcode name in - print_string name) + (function var -> + let current_name = Ast0.meta_pos_name var in + let (_,name) = Ast0.unwrap_mcode current_name in + print_string "@"; + print_string name; + meta_pos (Ast0.get_pos current_name)) l (* --------------------------------------------------------------------- *) @@ -181,6 +184,9 @@ let rec expression e = | Ast0.Assignment(left,op,right,_) -> expression left; print_string " "; mcode U.assignOp op; print_string " "; expression right + | Ast0.Sequence(left,op,right) -> + expression left; mcode print_string op; + print_string " "; expression right | Ast0.CondExpr(exp1,why,exp2,colon,exp3) -> expression exp1; print_string " "; mcode print_string why; print_option (function e -> print_string " "; expression e) exp2; @@ -251,7 +257,9 @@ let rec expression e = | Ast0.Ecircles(dots,None) | Ast0.Estars(dots,None) -> mcode print_string dots | Ast0.OptExp(exp) -> print_string "?"; expression exp - | Ast0.UniqueExp(exp) -> print_string "!"; expression exp) + | Ast0.UniqueExp(exp) -> print_string "!"; expression exp + | Ast0.AsExpr(exp,asexp) -> expression exp; print_string "@"; + expression asexp) and expression_dots x = dots (function _ -> ()) expression x @@ -304,7 +312,8 @@ and typeC t = | Ast0.MetaType(name,_)-> mcode print_meta name; print_string " " | Ast0.DisjType(_,types,_,_) -> do_disj types typeC | Ast0.OptType(ty) -> print_string "?"; typeC ty - | Ast0.UniqueType(ty) -> print_string "!"; typeC ty) + | Ast0.UniqueType(ty) -> print_string "!"; typeC ty + | Ast0.AsType(ty,asty) -> typeC ty; print_string "@"; typeC asty) (* --------------------------------------------------------------------- *) (* Variable declaration *) @@ -353,6 +362,13 @@ and declaration d = ident name; mcode print_string_box lp; let _ = dots (function _ -> ()) expression args in close_box(); mcode print_string rp; mcode print_string sem + | Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem) -> + ident name; mcode print_string_box lp; + let _ = dots (function _ -> ()) expression args in + close_box(); mcode print_string rp; + print_string " "; + mcode print_string eq; print_string " "; initialiser ini; + mcode print_string sem | Ast0.TyDecl(ty,sem) -> typeC ty; mcode print_string sem | Ast0.Typedef(stg,ty,id,sem) -> mcode print_string stg; typeC ty; typeC id; @@ -368,7 +384,9 @@ and declaration d = declaration whencode | Ast0.Ddots(dots,None) -> mcode print_string dots | Ast0.OptDecl(decl) -> print_string "?"; declaration decl - | Ast0.UniqueDecl(decl) -> print_string "!"; declaration decl) + | Ast0.UniqueDecl(decl) -> print_string "!"; declaration decl + | Ast0.AsDecl(decl,asdecl) -> + declaration decl; print_string "@"; declaration asdecl) and declaration_dots l = dots (function _ -> ()) declaration l @@ -398,7 +416,9 @@ and initialiser i = initialiser whencode | Ast0.Idots(d,None) -> mcode print_string d | Ast0.OptIni(ini) -> print_string "?"; initialiser ini - | Ast0.UniqueIni(ini) -> print_string "!"; initialiser ini) + | Ast0.UniqueIni(ini) -> print_string "!"; initialiser ini + | Ast0.AsInit(ini,asini) -> initialiser ini; print_string "@"; + initialiser asini) and designator = function Ast0.DesignatorField(dot,id) -> mcode print_string dot; ident id @@ -446,7 +466,12 @@ and statement arity s = print_string arity; mcode print_string lbrace; start_block(); dots force_newline (statement arity) body; end_block(); print_string arity; mcode print_string rbrace - | Ast0.Decl(_,decl) -> print_string arity; declaration decl + | Ast0.Decl(_,decl) -> + Printf.printf "statement mcodekind %s\n" + (Dumper.dump (Ast0.get_mcodekind s)); + Printf.printf "decl mcodekind %s\n" + (Dumper.dump (Ast0.get_mcodekind decl)); + print_string arity; declaration decl | Ast0.Seq(lbrace,body,rbrace) -> print_string arity; mcode print_string lbrace; start_block(); dots force_newline (statement arity) body; @@ -565,7 +590,9 @@ and statement arity s = print_string " "; dots force_newline (statement arity) body | Ast0.OptStm(re) -> statement "?" re - | Ast0.UniqueStm(re) -> statement "!" re) + | Ast0.UniqueStm(re) -> statement "!" re + | Ast0.AsStmt(stm,asstm) -> statement arity stm; print_string "@"; + statement arity asstm) and print_define_parameters params = match Ast0.unwrap params with @@ -679,7 +706,8 @@ let unparse_anything x = | Ast0.IsoWhenTag(x) -> U.print_when_modif x | Ast0.IsoWhenTTag(e) -> expression e | Ast0.IsoWhenFTag(e) -> expression e - | Ast0.MetaPosTag(var) -> meta_pos [var]); + | Ast0.MetaPosTag(var) -> meta_pos [x] + | Ast0.HiddenVarTag(var) -> failwith "should not need to be printed"); quiet := q; print_newline() diff --git a/parsing_cocci/unparse_ast0.mli b/parsing_cocci/unparse_ast0.mli index 3818b77..9ee2bdb 100644 --- a/parsing_cocci/unparse_ast0.mli +++ b/parsing_cocci/unparse_ast0.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/visitor_ast.ml b/parsing_cocci/visitor_ast.ml index 5fa4307..425d477 100644 --- a/parsing_cocci/visitor_ast.ml +++ b/parsing_cocci/visitor_ast.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -122,6 +124,8 @@ let combiner bind option_default string_mcode rp] | Ast.Assignment(left,op,right,simple) -> multibind [expression left; assign_mcode op; expression right] + | Ast.Sequence(left,op,right) -> + multibind [expression left; string_mcode op; expression right] | Ast.CondExpr(exp1,why,exp2,colon,exp3) -> multibind [expression exp1; string_mcode why; get_option expression exp2; string_mcode colon; @@ -158,6 +162,7 @@ let combiner bind option_default | Ast.MetaErr(name,_,_,_) | Ast.MetaExpr(name,_,_,_,_,_) | Ast.MetaExprList(name,_,_,_) -> meta_mcode name + | Ast.AsExpr(exp,asexp) -> bind (expression exp) (expression asexp) | Ast.EComma(cm) -> string_mcode cm | Ast.DisjExpr(exp_list) -> multibind (List.map expression exp_list) | Ast.NestExpr(starter,expr_dots,ender,whencode,multi) -> @@ -175,7 +180,8 @@ let combiner bind option_default and fullType ft = let k ft = match Ast.unwrap ft with - Ast.Type(cv,ty) -> bind (get_option cv_mcode cv) (typeC ty) + Ast.Type(_,cv,ty) -> bind (get_option cv_mcode cv) (typeC ty) + | Ast.AsType(ty,asty) -> bind (fullType ty) (fullType asty) | Ast.DisjType(types) -> multibind (List.map fullType types) | Ast.OptType(ty) -> fullType ty | Ast.UniqueType(ty) -> fullType ty in @@ -229,7 +235,7 @@ let combiner bind option_default and named_type ty id = match Ast.unwrap ty with - Ast.Type(None,ty1) -> + Ast.Type(_,None,ty1) -> (match Ast.unwrap ty1 with Ast.FunctionPointer(ty,lp1,star,rp1,lp2,params,rp2) -> function_pointer (ty,lp1,star,rp1,lp2,params,rp2) [ident id] @@ -245,6 +251,8 @@ let combiner bind option_default Ast.MetaDecl(name,_,_) | Ast.MetaField(name,_,_) | Ast.MetaFieldList(name,_,_,_) -> meta_mcode name + | Ast.AsDecl(decl,asdecl) -> + bind (declaration decl) (declaration asdecl) | Ast.Init(stg,ty,id,eq,ini,sem) -> bind (get_option storage_mcode stg) (bind (named_type ty id) @@ -257,6 +265,11 @@ let combiner bind option_default multibind [ident name; string_mcode lp; expression_dots args; string_mcode rp; string_mcode sem] + | Ast.MacroDeclInit(name,lp,args,rp,eq,ini,sem) -> + multibind + [ident name; string_mcode lp; expression_dots args; + string_mcode rp; string_mcode eq; initialiser ini; + string_mcode sem] | Ast.TyDecl(ty,sem) -> bind (fullType ty) (string_mcode sem) | Ast.Typedef(stg,ty,id,sem) -> bind (string_mcode stg) @@ -273,6 +286,8 @@ let combiner bind option_default match Ast.unwrap i with Ast.MetaInit(name,_,_) -> meta_mcode name | Ast.MetaInitList(name,_,_,_) -> meta_mcode name + | Ast.AsInit(init,asinit) -> + bind (initialiser init) (initialiser asinit) | Ast.InitExpr(exp) -> expression exp | Ast.ArInitList(lb,initlist,rb) -> multibind @@ -455,6 +470,8 @@ let combiner bind option_default statement_dots body; rule_elem rbrace] | Ast.Define(header,body) -> bind (rule_elem header) (statement_dots body) + | Ast.AsStmt(stm,asstm) -> + bind (statement stm) (statement asstm) | Ast.Dots(d,whn,_,_) | Ast.Circles(d,whn,_,_) | Ast.Stars(d,whn,_,_) -> bind (string_mcode d) (multibind (List.map (whencode statement_dots statement) whn)) @@ -634,6 +651,8 @@ let rebuilder | Ast.Assignment(left,op,right,simple) -> Ast.Assignment(expression left, assign_mcode op, expression right, simple) + | Ast.Sequence(left,op,right) -> + Ast.Sequence(expression left, string_mcode op, expression right) | Ast.CondExpr(exp1,why,exp2,colon,exp3) -> Ast.CondExpr(expression exp1, string_mcode why, get_option expression exp2, string_mcode colon, @@ -672,6 +691,7 @@ let rebuilder Ast.MetaExpr(meta_mcode name,constraints,keep,ty,form,inherited) | Ast.MetaExprList(name,lenname_inh,keep,inherited) -> Ast.MetaExprList(meta_mcode name,lenname_inh,keep,inherited) + | Ast.AsExpr(exp,asexp) -> Ast.AsExpr(expression exp,expression asexp) | Ast.EComma(cm) -> Ast.EComma(string_mcode cm) | Ast.DisjExpr(exp_list) -> Ast.DisjExpr(List.map expression exp_list) | Ast.NestExpr(starter,expr_dots,ender,whencode,multi) -> @@ -692,7 +712,9 @@ let rebuilder let k ft = Ast.rewrap ft (match Ast.unwrap ft with - Ast.Type(cv,ty) -> Ast.Type (get_option cv_mcode cv, typeC ty) + Ast.Type(allminus,cv,ty) -> + Ast.Type (allminus,get_option cv_mcode cv, typeC ty) + | Ast.AsType(ty,asty) -> Ast.AsType(fullType ty,fullType asty) | Ast.DisjType(types) -> Ast.DisjType(List.map fullType types) | Ast.OptType(ty) -> Ast.OptType(fullType ty) | Ast.UniqueType(ty) -> Ast.UniqueType(fullType ty)) in @@ -745,6 +767,8 @@ let rebuilder Ast.MetaField(meta_mcode name,keep,inherited) | Ast.MetaFieldList(name,lenname_inh,keep,inherited) -> Ast.MetaFieldList(meta_mcode name,lenname_inh,keep,inherited) + | Ast.AsDecl(decl,asdecl) -> + Ast.AsDecl(declaration decl,declaration asdecl) | Ast.Init(stg,ty,id,eq,ini,sem) -> Ast.Init(get_option storage_mcode stg, fullType ty, ident id, string_mcode eq, initialiser ini, string_mcode sem) @@ -754,6 +778,11 @@ let rebuilder | Ast.MacroDecl(name,lp,args,rp,sem) -> Ast.MacroDecl(ident name, string_mcode lp, expression_dots args, string_mcode rp,string_mcode sem) + | Ast.MacroDeclInit(name,lp,args,rp,eq,ini,sem) -> + Ast.MacroDeclInit + (ident name, string_mcode lp, expression_dots args, + string_mcode rp,string_mcode eq,initialiser ini, + string_mcode sem) | Ast.TyDecl(ty,sem) -> Ast.TyDecl(fullType ty, string_mcode sem) | Ast.Typedef(stg,ty,id,sem) -> Ast.Typedef(string_mcode stg, fullType ty, typeC id, @@ -773,6 +802,8 @@ let rebuilder Ast.MetaInit(meta_mcode name,keep,inherited) | Ast.MetaInitList(name,lenname_inh,keep,inherited) -> Ast.MetaInitList(meta_mcode name,lenname_inh,keep,inherited) + | Ast.AsInit(ini,asini) -> + Ast.AsInit(initialiser ini,initialiser asini) | Ast.InitExpr(exp) -> Ast.InitExpr(expression exp) | Ast.ArInitList(lb,initlist,rb) -> Ast.ArInitList(string_mcode lb, initialiser_dots initlist, @@ -970,6 +1001,7 @@ let rebuilder statement_dots body, rule_elem rbrace) | Ast.Define(header,body) -> Ast.Define(rule_elem header,statement_dots body) + | Ast.AsStmt(stm,asstm) -> Ast.AsStmt(statement stm,statement asstm) | Ast.Dots(d,whn,bef,aft) -> Ast.Dots(string_mcode d, List.map (whencode statement_dots statement) whn,bef,aft) diff --git a/parsing_cocci/visitor_ast.mli b/parsing_cocci/visitor_ast.mli index 8c44fc1..c9fd195 100644 --- a/parsing_cocci/visitor_ast.mli +++ b/parsing_cocci/visitor_ast.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/visitor_ast0.ml b/parsing_cocci/visitor_ast0.ml index 91066d6..f50e7c8 100644 --- a/parsing_cocci/visitor_ast0.ml +++ b/parsing_cocci/visitor_ast0.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -180,6 +182,12 @@ let visitor mode bind option_default let (right_n,right) = expression right in (multibind [left_n;op_n;right_n], Ast0.Assignment(left,op,right,simple)) + | Ast0.Sequence(left,op,right) -> + let (left_n,left) = expression left in + let (op_n,op) = string_mcode op in + let (right_n,right) = expression right in + (multibind [left_n;op_n;right_n], + Ast0.Sequence(left,op,right)) | Ast0.CondExpr(exp1,why,exp2,colon,exp3) -> let (exp1_n,exp1) = expression exp1 in let (why_n,why) = string_mcode why in @@ -296,7 +304,11 @@ let visitor mode bind option_default (exp_n,Ast0.OptExp(exp)) | Ast0.UniqueExp(exp) -> let (exp_n,exp) = expression exp in - (exp_n,Ast0.UniqueExp(exp))) in + (exp_n,Ast0.UniqueExp(exp)) + | Ast0.AsExpr(exp,asexp) -> + let (exp_n,exp) = expression exp in + let (asexp_n,asexp) = expression asexp in + (bind exp_n asexp_n, Ast0.AsExpr(exp,asexp))) in exprfn all_functions k e and typeC t = let k t = @@ -356,7 +368,11 @@ let visitor mode bind option_default | Ast0.OptType(ty) -> let (ty_n,ty) = typeC ty in (ty_n, Ast0.OptType(ty)) | Ast0.UniqueType(ty) -> - let (ty_n,ty) = typeC ty in (ty_n, Ast0.UniqueType(ty))) in + let (ty_n,ty) = typeC ty in (ty_n, Ast0.UniqueType(ty)) + | Ast0.AsType(ty,asty) -> + let (ty_n,ty) = typeC ty in + let (asty_n,asty) = typeC asty in + (bind ty_n asty_n, Ast0.AsType(ty,asty))) in tyfn all_functions k t and function_pointer (ty,lp1,star,rp1,lp2,params,rp2) extra = @@ -435,6 +451,16 @@ let visitor mode bind option_default let (sem_n,sem) = string_mcode sem in (multibind [name_n;lp_n;args_n;rp_n;sem_n], Ast0.MacroDecl(name,lp,args,rp,sem)) + | Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem) -> + let (name_n,name) = ident name in + let (lp_n,lp) = string_mcode lp in + let (args_n,args) = expression_dots args in + let (rp_n,rp) = string_mcode rp in + let (eq_n,eq) = string_mcode eq in + let (ini_n,ini) = initialiser ini in + let (sem_n,sem) = string_mcode sem in + (multibind [name_n;lp_n;args_n;rp_n;eq_n;ini_n;sem_n], + Ast0.MacroDeclInit(name,lp,args,rp,eq,ini,sem)) | Ast0.TyDecl(ty,sem) -> let (ty_n,ty) = typeC ty in let (sem_n,sem) = string_mcode sem in @@ -456,7 +482,11 @@ let visitor mode bind option_default | Ast0.OptDecl(decl) -> let (n,decl) = declaration decl in (n,Ast0.OptDecl(decl)) | Ast0.UniqueDecl(decl) -> - let (n,decl) = declaration decl in (n,Ast0.UniqueDecl(decl))) in + let (n,decl) = declaration decl in (n,Ast0.UniqueDecl(decl)) + | Ast0.AsDecl(decl,asdecl) -> + let (decl_n,decl) = declaration decl in + let (asdecl_n,asdecl) = declaration asdecl in + (bind decl_n asdecl_n, Ast0.AsDecl(decl,asdecl))) in declfn all_functions k d and initialiser i = @@ -497,7 +527,11 @@ let visitor mode bind option_default | Ast0.OptIni(i) -> let (n,i) = initialiser i in (n,Ast0.OptIni(i)) | Ast0.UniqueIni(i) -> - let (n,i) = initialiser i in (n,Ast0.UniqueIni(i))) in + let (n,i) = initialiser i in (n,Ast0.UniqueIni(i)) + | Ast0.AsInit(ini,asini) -> + let (ini_n,ini) = initialiser ini in + let (asini_n,asini) = initialiser asini in + (bind ini_n asini_n, Ast0.AsInit(ini,asini))) in initfn all_functions k i and designator = function @@ -749,7 +783,11 @@ let visitor mode bind option_default | Ast0.OptStm(re) -> let (re_n,re) = statement re in (re_n,Ast0.OptStm(re)) | Ast0.UniqueStm(re) -> - let (re_n,re) = statement re in (re_n,Ast0.UniqueStm(re))) in + let (re_n,re) = statement re in (re_n,Ast0.UniqueStm(re)) + | Ast0.AsStmt(stm,asstm) -> + let (stm_n,stm) = statement stm in + let (asstm_n,asstm) = statement asstm in + (bind stm_n asstm_n, Ast0.AsStmt(stm,asstm))) in let (n,s) = stmtfn all_functions k s in (n,if mode = REBUILDER then process_bef_aft s else s) @@ -920,7 +958,8 @@ let visitor mode bind option_default | Ast0.IsoWhenFTag(e) -> let (e_n,e) = expression e in (e_n,Ast0.IsoWhenFTag(e)) - | Ast0.MetaPosTag(var) -> failwith "not supported" in + | Ast0.MetaPosTag(var) -> failwith "not supported" + | Ast0.HiddenVarTag(var) -> failwith "not supported" in k a (* not done for combiner, because the statement is assumed to be already diff --git a/parsing_cocci/visitor_ast0.mli b/parsing_cocci/visitor_ast0.mli index 43590fa..0117374 100644 --- a/parsing_cocci/visitor_ast0.mli +++ b/parsing_cocci/visitor_ast0.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/parsing_cocci/visitor_ast0_types.ml b/parsing_cocci/visitor_ast0_types.ml index 98c284a..4552c1d 100644 --- a/parsing_cocci/visitor_ast0_types.ml +++ b/parsing_cocci/visitor_ast0_types.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/popl/Makefile b/popl/Makefile index 9302461..e3d9650 100644 --- a/popl/Makefile +++ b/popl/Makefile @@ -1,4 +1,6 @@ -# Copyright 2010, INRIA, University of Copenhagen +# Copyright 2012, INRIA +# Julia Lawall, Gilles Muller +# Copyright 2010-2011, 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 diff --git a/popl/ast_popl.ml b/popl/ast_popl.ml index abb6b03..1b3ec5c 100644 --- a/popl/ast_popl.ml +++ b/popl/ast_popl.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/popl/asttopopl.ml b/popl/asttopopl.ml index 5fbf9f8..49b0f00 100644 --- a/popl/asttopopl.ml +++ b/popl/asttopopl.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/popl/asttopopl.mli b/popl/asttopopl.mli index 37e4b82..8db0851 100644 --- a/popl/asttopopl.mli +++ b/popl/asttopopl.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/popl/insert_befaft.ml b/popl/insert_befaft.ml index ad6caad..4723621 100644 --- a/popl/insert_befaft.ml +++ b/popl/insert_befaft.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/popl/insert_befaft.mli b/popl/insert_befaft.mli index 4aaf5af..ba0eeeb 100644 --- a/popl/insert_befaft.mli +++ b/popl/insert_befaft.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/popl/insert_quantifiers.ml b/popl/insert_quantifiers.ml index 3a0980e..f9c7d70 100644 --- a/popl/insert_quantifiers.ml +++ b/popl/insert_quantifiers.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/popl/insert_quantifiers.mli b/popl/insert_quantifiers.mli index 0276dba..954760b 100644 --- a/popl/insert_quantifiers.mli +++ b/popl/insert_quantifiers.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/popl/popl.ml b/popl/popl.ml index c32ae10..f2a814c 100644 --- a/popl/popl.ml +++ b/popl/popl.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/popl/popl.mli b/popl/popl.mli index 7716982..b408f4f 100644 --- a/popl/popl.mli +++ b/popl/popl.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/popl/popltoctl.ml b/popl/popltoctl.ml index 7bb9787..ea0dd37 100644 --- a/popl/popltoctl.ml +++ b/popl/popltoctl.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/popl/popltoctl.mli b/popl/popltoctl.mli index a65c5ca..bf73a67 100644 --- a/popl/popltoctl.mli +++ b/popl/popltoctl.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/popl/pretty_print_popl.ml b/popl/pretty_print_popl.ml index 0515ad7..61bb843 100644 --- a/popl/pretty_print_popl.ml +++ b/popl/pretty_print_popl.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/popl/pretty_print_popl.mli b/popl/pretty_print_popl.mli index d4ae105..f36b513 100644 --- a/popl/pretty_print_popl.mli +++ b/popl/pretty_print_popl.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/popl09/Makefile b/popl09/Makefile index db143ea..50c7800 100644 --- a/popl09/Makefile +++ b/popl09/Makefile @@ -1,4 +1,6 @@ -# Copyright 2010, INRIA, University of Copenhagen +# Copyright 2012, INRIA +# Julia Lawall, Gilles Muller +# Copyright 2010-2011, 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 diff --git a/popl09/ast_popl.ml b/popl09/ast_popl.ml index e153487..4aaf236 100644 --- a/popl09/ast_popl.ml +++ b/popl09/ast_popl.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/popl09/asttopopl.ml b/popl09/asttopopl.ml index 530560d..e49072c 100644 --- a/popl09/asttopopl.ml +++ b/popl09/asttopopl.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/popl09/asttopopl.mli b/popl09/asttopopl.mli index 37e4b82..8db0851 100644 --- a/popl09/asttopopl.mli +++ b/popl09/asttopopl.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/popl09/flag_popl.ml b/popl09/flag_popl.ml index c509121..c5c1324 100644 --- a/popl09/flag_popl.ml +++ b/popl09/flag_popl.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/popl09/insert_quantifiers.ml b/popl09/insert_quantifiers.ml index ce86d0c..80c2ec6 100644 --- a/popl09/insert_quantifiers.ml +++ b/popl09/insert_quantifiers.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/popl09/insert_quantifiers.mli b/popl09/insert_quantifiers.mli index 0276dba..954760b 100644 --- a/popl09/insert_quantifiers.mli +++ b/popl09/insert_quantifiers.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/popl09/popl.ml b/popl09/popl.ml index 76c4a57..fd57654 100644 --- a/popl09/popl.ml +++ b/popl09/popl.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/popl09/popl.mli b/popl09/popl.mli index 7716982..b408f4f 100644 --- a/popl09/popl.mli +++ b/popl09/popl.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/popl09/popltoctl.ml b/popl09/popltoctl.ml index 6fe9963..77c2897 100644 --- a/popl09/popltoctl.ml +++ b/popl09/popltoctl.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/popl09/popltoctl.mli b/popl09/popltoctl.mli index a65c5ca..bf73a67 100644 --- a/popl09/popltoctl.mli +++ b/popl09/popltoctl.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/popl09/pretty_print_popl.ml b/popl09/pretty_print_popl.ml index e76b8fc..42b0a81 100644 --- a/popl09/pretty_print_popl.ml +++ b/popl09/pretty_print_popl.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/popl09/pretty_print_popl.mli b/popl09/pretty_print_popl.mli index d4ae105..f36b513 100644 --- a/popl09/pretty_print_popl.mli +++ b/popl09/pretty_print_popl.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/python/Makefile b/python/Makefile index 2c3459a..90fa83a 100644 --- a/python/Makefile +++ b/python/Makefile @@ -1,4 +1,6 @@ -# Copyright 2010, INRIA, University of Copenhagen +# Copyright 2012, INRIA +# Julia Lawall, Gilles Muller +# Copyright 2010-2011, 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 @@ -30,7 +32,7 @@ ############################################################################## TARGET=coccipython -SOURCES= pycocci_aux.ml pycocci.ml +SOURCES= pycocci_aux.ml $(PYCOCCI_FILE) pycocci.ml INCLUDEDIRS_LOCAL = ../commons ../commons/ocamlextra ../globals \ ../parsing_c ../parsing_cocci diff --git a/python/coccilib/elems.py b/python/coccilib/elems.py index 0e794c9..2c0429a 100644 --- a/python/coccilib/elems.py +++ b/python/coccilib/elems.py @@ -1,5 +1,5 @@ class Location: - def __init__(self, file, current_element, line, column, line_end, column_end): + def __init__(self, file, current_element, line, column, line_end, column_end): self.file = file self.current_element = current_element self.line = line @@ -11,19 +11,30 @@ class ElemBase: def __init__(self): pass +# class Expression(ElemBase): +# def __init__(self, expr): +# ElemBase.__init__(self) +# self.expr = expr +# +# def __str__(self): +# return self.expr -class Expression(ElemBase): - def __init__(self, expr): +class TermList(ElemBase): + def __init__(self, expr, elements): ElemBase.__init__(self) self.expr = expr + self.elements = elements + + def __getitem__(self,n): + return self.elements[n] def __str__(self): return self.expr -class Identifier(ElemBase): - def __init__(self, ident): - ElemBase.__init__(self) - self.ident = ident - - def __str__(self): - return self.ident +# class Identifier(ElemBase): +# def __init__(self, ident): +# ElemBase.__init__(self) +# self.ident = ident +# +# def __str__(self): +# return self.ident diff --git a/python/no_pycocci.ml b/python/no_pycocci.ml index 7f3f485..3aff755 100644 --- a/python/no_pycocci.ml +++ b/python/no_pycocci.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/python/pycocci.ml.in b/python/pycocci.ml.in new file mode 100644 index 0000000..ca370fc --- /dev/null +++ b/python/pycocci.ml.in @@ -0,0 +1 @@ +include @PYCOCCI_FILE@ diff --git a/python/pycocci.mli b/python/pycocci.mli index 6c2b0c6..aca8366 100644 --- a/python/pycocci.mli +++ b/python/pycocci.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/python/pycocci_aux.ml b/python/pycocci_aux.ml index 5900641..6bc09b9 100644 --- a/python/pycocci_aux.ml +++ b/python/pycocci_aux.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -34,6 +36,29 @@ let call_pretty f a = let exprrep = call_pretty Pretty_print_c.pp_expression_gen +let commalistrep list_printer elem_printer comma_printer x = + (call_pretty list_printer x, + List.map + (function x -> + call_pretty elem_printer (comma_printer x) (* drop commas *)) + x) + +let exprlistrep = + commalistrep Pretty_print_c.pp_arg_list_gen Pretty_print_c.pp_arg_gen + Ast_c.unwrap + +let paramlistrep = + commalistrep Pretty_print_c.pp_param_list_gen Pretty_print_c.pp_param_gen + Ast_c.unwrap + +let initlistrep = + commalistrep Pretty_print_c.pp_init_list_gen Pretty_print_c.pp_init_gen + Ast_c.unwrap + +let fieldlistrep = + commalistrep Pretty_print_c.pp_field_list_gen Pretty_print_c.pp_field_gen + (function x -> x) + let stringrep = function Ast_c.MetaIdVal (s,_) -> s | Ast_c.MetaFuncVal s -> s diff --git a/python/pycocci_aux.mli b/python/pycocci_aux.mli index cda8a0b..acef890 100644 --- a/python/pycocci_aux.mli +++ b/python/pycocci_aux.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -22,5 +24,8 @@ *) -val exprrep : Ast_c.expression -> string +val exprlistrep : Ast_c.argument Ast_c.wrap2 list -> string * string list +val paramlistrep : Ast_c.parameterType Ast_c.wrap2 list -> string * string list +val initlistrep : Ast_c.initialiser Ast_c.wrap2 list -> string * string list +val fieldlistrep : Ast_c.field list -> string * string list val stringrep : Ast_c.metavar_binding_kind -> string diff --git a/python/yes_pycocci.ml b/python/yes_pycocci.ml index 39e0468..c1792b6 100644 --- a/python/yes_pycocci.ml +++ b/python/yes_pycocci.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -251,29 +253,52 @@ let construct_variables mv e = with Not_found -> None in +(* Only string in this representation, so no point let instantiate_Expression(x) = let str = pystring_fromstring (Pycocci_aux.exprrep x) in pycocci_instantiate_class "coccilib.elems.Expression" (pytuple_fromsingle (str)) in +*) +(* Only string in this representation, so no point let instantiate_Identifier(x) = let str = pystring_fromstring x in pycocci_instantiate_class "coccilib.elems.Identifier" (pytuple_fromsingle (str)) in +*) + + let instantiate_term_list py printer lst = + let (str,elements) = printer lst in + let str = pystring_fromstring str in + let elements = + pytuple_fromarray + (Array.of_list (List.map pystring_fromstring elements)) in + let repr = + pycocci_instantiate_class "coccilib.elems.TermList" + (pytuple_fromarray (Array.of_list [str;elements])) in + let _ = build_variable py repr in () in List.iter (function (py,(r,m),_) -> match find_binding (r,m) with None -> () - | Some (_, Ast_c.MetaExprVal (expr,_)) -> +(* | Some (_, Ast_c.MetaExprVal (expr,_)) -> let expr_repr = instantiate_Expression(expr) in let _ = build_variable py expr_repr in - () - | Some (_, Ast_c.MetaIdVal (id,_)) -> + () *) + (* | Some (_, Ast_c.MetaIdVal (id,_)) -> let id_repr = instantiate_Identifier(id) in let _ = build_variable py id_repr in - () + () *) + | Some (_, Ast_c.MetaExprListVal (exprlist)) -> + instantiate_term_list py Pycocci_aux.exprlistrep exprlist + | Some (_, Ast_c.MetaParamListVal (paramlist)) -> + instantiate_term_list py Pycocci_aux.paramlistrep paramlist + | Some (_, Ast_c.MetaInitListVal (initlist)) -> + instantiate_term_list py Pycocci_aux.initlistrep initlist + | Some (_, Ast_c.MetaFieldListVal (fieldlist)) -> + instantiate_term_list py Pycocci_aux.fieldlistrep fieldlist | Some (_, Ast_c.MetaPosValList l) -> let locs = List.map @@ -300,13 +325,10 @@ let construct_variables mv e = let construct_script_variables mv = List.iter (function (_,py) -> - let vl = - let str = - pystring_fromstring - "initial value: consider using coccinelle.varname" in - pycocci_instantiate_class "coccilib.elems.Identifier" - (pytuple_fromsingle (str)) in - let _ = build_variable py vl in + let str = + pystring_fromstring + "initial value: consider using coccinelle.varname" in + let _ = build_variable py str in ()) mv diff --git a/release.nix b/release.nix new file mode 100644 index 0000000..c1c18d1 --- /dev/null +++ b/release.nix @@ -0,0 +1,326 @@ +# Hydra build file for coccinelle + +{ nixpkgs ? /etc/nixos/nixpkgs +, cocciSrc ? { outPath = ./.; revCount = 1234; gitTag = "abcdef"; } +, testsSrc ? { outPath = ../big-tests; rev = 1234; } +, officialRelease ? false +}: + +let + + # version information + version = builtins.readFile ./version; + versionSuffix = if officialRelease then "" else "pre${toString cocciSrc.revCount}-${cocciSrc.gitTag}"; + + # The source tarball taken from the repository. + # The tarball should actually be compilable using + # ./configure && make depend && make opt && make install + # on systems other than nix. + tarball = + let + pkgs = import nixpkgs { + # use ocaml 3.12 + config.packageOverrides = + pkgs: + { ocaml = pkgs.ocaml_3_12_1; + ocamlPackages = pkgs.ocamlPackages_3_12_1; + }; + }; + + in with pkgs; with ocamlPackages; releaseTools.sourceTarball { + name = "coccinelle-tarball"; + src = cocciSrc; + inherit officialRelease; + inherit version; + inherit versionSuffix; + + buildInputs = [ + perl python texLiveFull + ocaml findlib menhir + ocaml_pcre ocaml_sexplib + ocaml_extlib pycaml + ]; + + configurePhase = '' + # explicitly run perl because the configure script references a perl outside the nix store + # substituting the path to perl is not a good idea as it would invalidate the tarball on + # non-nix machines. + perl -w ./configure + + make depend + ''; + + preDist = '' + local PREVHOME=$HOME + export HOME=$TMPDIR # the latex installation needs to write to the $HOME directory, so rename it here + ''; + + dontCopyDist = 1; # we'll copy the tarball to the tarballs folder ourselves (and rename it) + postDist = '' + export HOME=$PREVHOME # restore the home directory + + ensureDir "$out/tarballs" + + # rename the tarball to give it a version-specific name + cp coccinelle-*.tar.gz "$out/tarballs/coccinelle-${version}${versionSuffix}.tar.gz" + ''; + }; + + + # builds coccinelle, given a ocaml selector function and an ocaml environment builder. + # the build procedure itself is largely the same as the coccinelle expression in nixpkgs. + # the result should be a usable nix-expression + mkBuild = { name, ocamlVer, mkEnv, inclPython }: { system ? builtins.currentSystem }: + let pkgs = import nixpkgs { + inherit system; + config.packageOverrides = ocamlVer; + }; + + ocamlEnv = mkEnv pkgs; + in with pkgs; releaseTools.nixBuild { + inherit name; + src = tarball; + + # ocamlEnv contains the ocaml libraries in scope. + buildInputs = + lib.optional inclPython python + ++ [ perl texLiveFull ncurses makeWrapper ocamlEnv ]; + + # patch the files for use with nix + preConfigure = '' + sed -i "configure" -e's|/usr/bin/perl|${perl}/bin/perl|g' + sed -i "globals/config.ml.in" \ + -e"s|/usr/local/share|$out/share|g" + ''; + + configureFlags = lib.optional (!inclPython) "--without-python"; + + buildPhase = '' + make depend 2> >(tee -a "$out/nix-support/make.log" >&2) + make all 2> >(tee -a "$out/nix-support/make.log" >&2) + make all.opt 2> >(tee -a "$out/nix-support/make.log" >&2) + ''; + + # run checking after installation. + # also, the test phase may require a yes/no input. + doCheck = false; + postInstall = '' + wrapProgram "$out/bin/spatch" \ + --prefix "LD_LIBRARY_PATH" ":" "$out/lib" \ + --prefix "PYTHONPATH" ":" "$out/share/coccinelle/python" + + wrapProgram "$out/bin/spatch.opt" \ + --prefix "LD_LIBRARY_PATH" ":" "$out/lib" \ + --prefix "PYTHONPATH" ":" "$out/share/coccinelle/python" + + yes | make test + ''; + }; + + + # selects which version of ocaml and ocamlPackages to use in nixpkgs. + selOcaml312 = pkgs: + { ocaml = pkgs.ocaml_3_12_1; + ocamlPackages = pkgs.ocamlPackages_3_12_1; + }; + selOcaml311 = pkgs: + { ocaml = pkgs.ocaml_3_11_1; + ocamlPackages = pkgs.ocamlPackages_3_11_1; + }; + + + # builds an environment with the ocaml packages needed to build coccinelle + # the mkList function selects which additional packages to include + mkOcamlEnv = mkList: pkgs: + pkgs.buildEnv { + name = "cocci-ocamlenv"; + paths = with pkgs.ocamlPackages; [ pkgs.ocaml findlib menhir ] ++ mkList pkgs.ocamlPackages; + }; + + # selections of ocaml libraries + libs_full = mkOcamlEnv (libs: with libs; [ ocaml_pcre ocaml_sexplib ocaml_extlib pycaml ]); + libs_rse = mkOcamlEnv (libs: with libs; [ ocaml_pcre ocaml_sexplib ocaml_extlib ]); + libs_se = mkOcamlEnv (libs: with libs; [ ocaml_sexplib ocaml_extlib ]); + libs_null = mkOcamlEnv (libs: []); + + # package builder for Debian-based OS'ses + makeDeb = + system: diskImageFun: + + with import nixpkgs { inherit system; }; + releaseTools.debBuild { + name = "coccinelle-deb"; + src = tarball; + diskImage = diskImageFun vmTools.diskImageFuns { + extraPackages = [ "python" "python-support" "ocaml-nox" "ocaml-findlib" ]; + }; + debRequires = [ "python" "python-support" "ocaml-nox" "ocaml-findlib" ]; + doCheck = false; + + buildPhase = '' + make depend + make all + make all.opt + ''; + }; + + makeDeb_i686 = makeDeb "i686-linux"; + makeDeb_x86_64 = makeDeb "x86_64-linux"; + + mkTask = + argsfun: { system ? builtins.currentSystem }: + let pkgs = import nixpkgs { inherit system; }; + args = argsfun pkgs system; + name = "${args.name}-${version}${versionSuffix}"; + in pkgs.stdenv.mkDerivation ({ + phases = [ "runPhase" ]; + + runPhase = '' + ensureDir "$out" + ensureDir "$out/nix-support" + touch "$TMPDIR/result.log" + exec > >(tee -a "$TMPDIR/result.log") 2> >(tee -a "$TMPDIR/result.log" >&2) + runHook execPhase + cp "$TMPDIR/result.log" "$out/" + echo "report log $out/result.log" >> "$out/nix-support/hydra-build-products" + echo "$name" > "$out/nix-support/hydra-release-name" + ''; + + meta = { + description = "Coccinelle post-build task"; + schedulingPriority = 8; + }; + } // args // { inherit name; }); + + mkReport = inputs: mkTask (pkgs: _: with pkgs; { + name = "report"; + builds = map (i: i {}) inputs; + + execPhase = '' + echo "collecting logs" + for build in $builds; do + echo "$build/nix-support/make.log" + cat "$build/nix-support/make.log" + done + + echo "grepping OCaml warnings" + if grep -2 "Warning " "$TMPDIR/result.log" + then + echo "found warnings!" + false + else + echo "there are apparently no significant warnings" + fi + ''; + + meta = { + description = "Analysis of the coccinelle build reports"; + schedulingPriority = 5; + }; + }); + + # Produces regression test results, which can be positive or + # negative. The build should succeed regardless of the outcome + # of individual tests unless coccinelle is horribly broken. + # The resulting files are stored in a tarball so that it allows + # manual inspection. + mkRegress = cocciSelect: mkTask (pkgs: system: with pkgs; + let coccinelle = cocciSelect { inherit system; }; + in { + name = "regression-${toString testsSrc.rev}"; + buildInputs = [ coccinelle ]; + + execPhase = '' + # prepare a writeable tests directory + # as this directory contains large + # files, we'll create links to the + # individual files. + ensureDir "$TMPDIR/tests" + cp -rs ${testsSrc}/* "$TMPDIR/tests/" + chmod -R u+w "$TMPDIR/tests/" + cd "$TMPDIR/tests" + + # initialize essential environment variables + # for the makefile + export COCCIDIR=$TMPDIR + export SPATCH=${coccinelle}/bin/spatch.opt + export ISO=${coccinelle}/share/coccinelle/standard.iso + export DEFS=${coccinelle}/share/coccinelle/standard.h + + # generate the test outcomes + make -e all + + # collect the results + # note: the tarball is likely to contain useless + # symbolic links to files in the nix store. So be it. + cd "$TMPDIR" + tar -czf "$out/results.tar.gz" ./tests + echo "file binary-dist $out/results.tar.gz" >> "$out/nix-support/hydra-build-products" + ''; + + meta = { + description = "Regression test of Coccinelle"; + schedulingPriority = 8; + }; + }); + + # Checks whether the regression tests meet our expectations. + # If the set of failed tests is different than specified in + # the tests repository, this check fails. + checkRegress = regressSelect: mkTask (pkgs: system: with pkgs; + let regress = regressSelect { inherit system; }; + in { + name = "test-${toString testsSrc.rev}"; + + execPhase = '' + # prepare a writeable tests directory + # as this directory contains large + # files, we'll create links to the + # individual files. + ensureDir "$TMPDIR/tests" + cp -rs ${testsSrc}/* "$TMPDIR/tests/" + chmod -R u+w "$TMPDIR/tests/" + + # extract the outcome of the regression test over it + echo "reconstructing regression directory" + cd "$TMPDIR" + tar xfz "${regress}/results.tar.gz" + cd "$TMPDIR/tests" + + echo "analyzing results" + make failedlog + + echo "verifying the outcome" + make check + ''; + + meta = { + description = "Regression test of Coccinelle"; + schedulingPriority = 8; + }; + }); + +in # list of jobs +rec { + inherit tarball; + + # different configurations of coccinelle builds based on different ocamls/available libraries + build = mkBuild { name = "coccinelle"; ocamlVer = selOcaml312; mkEnv = libs_full; inclPython = true; }; + build_rse = mkBuild { name = "coccinelle_config1"; ocamlVer = selOcaml312; mkEnv = libs_rse; inclPython = true; }; + build_se = mkBuild { name = "coccinelle_config2"; ocamlVer = selOcaml312; mkEnv = libs_se; inclPython = true; }; + build_null_12 = mkBuild { name = "coccinelle_config3"; ocamlVer = selOcaml312; mkEnv = libs_null; inclPython = true; }; + build_null_11 = mkBuild { name = "coccinelle_config4"; ocamlVer = selOcaml311; mkEnv = libs_null; inclPython = true; }; + build_null_12_np = mkBuild { name = "coccinelle_config5"; ocamlVer = selOcaml312; mkEnv = libs_null; inclPython = false; }; + build_null_11_np = mkBuild { name = "coccinelle_config6"; ocamlVer = selOcaml311; mkEnv = libs_null; inclPython = false; }; + build_rse_np = mkBuild { name = "coccinelle_config7"; ocamlVer = selOcaml312; mkEnv = libs_rse; inclPython = false; }; + + report = mkReport [ build build_rse build_se build_null_12 build_null_11 build_null_12_np build_null_11_np build_rse_np ]; + + # different debian builds + # deb_ubuntu1010_i386 = makeDeb_i686 (disk: disk.ubuntu1010i386); + # deb_ubuntu1010_x86_64 = makeDeb_x86_64 (disk: disk.ubuntu1010x86_64); + + # extensive tests + regress = mkRegress build; + test = checkRegress regress; +} diff --git a/scripts/extract_c_and_res.pl b/scripts/extract_c_and_res.pl index c8352a8..cd62ef8 100755 --- a/scripts/extract_c_and_res.pl +++ b/scripts/extract_c_and_res.pl @@ -1,4 +1,6 @@ -# Copyright 2010, INRIA, University of Copenhagen +# Copyright 2012, INRIA +# Julia Lawall, Gilles Muller +# Copyright 2010-2011, 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 diff --git a/scripts/extract_examples.pl b/scripts/extract_examples.pl index a474c25..3190bd3 100755 --- a/scripts/extract_examples.pl +++ b/scripts/extract_examples.pl @@ -1,4 +1,6 @@ -# Copyright 2010, INRIA, University of Copenhagen +# Copyright 2012, INRIA +# Julia Lawall, Gilles Muller +# Copyright 2010-2011, 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 diff --git a/scripts/extractor_README.pl b/scripts/extractor_README.pl index cb5347b..f9bbf18 100755 --- a/scripts/extractor_README.pl +++ b/scripts/extractor_README.pl @@ -1,4 +1,6 @@ -# Copyright 2010, INRIA, University of Copenhagen +# Copyright 2012, INRIA +# Julia Lawall, Gilles Muller +# Copyright 2010-2011, 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 diff --git a/scripts/gather_failed.pl b/scripts/gather_failed.pl index f877d2b..12ab155 100755 --- a/scripts/gather_failed.pl +++ b/scripts/gather_failed.pl @@ -1,4 +1,6 @@ -# Copyright 2010, INRIA, University of Copenhagen +# Copyright 2012, INRIA +# Julia Lawall, Gilles Muller +# Copyright 2010-2011, 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 diff --git a/scripts/readme.pl b/scripts/readme.pl index 21ba994..488ea3a 100755 --- a/scripts/readme.pl +++ b/scripts/readme.pl @@ -1,4 +1,6 @@ -# Copyright 2010, INRIA, University of Copenhagen +# Copyright 2012, INRIA +# Julia Lawall, Gilles Muller +# Copyright 2010-2011, 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 diff --git a/scripts/stat_directories.pl b/scripts/stat_directories.pl index ae064ff..f2430d1 100755 --- a/scripts/stat_directories.pl +++ b/scripts/stat_directories.pl @@ -1,4 +1,6 @@ -# Copyright 2010, INRIA, University of Copenhagen +# Copyright 2012, INRIA +# Julia Lawall, Gilles Muller +# Copyright 2010-2011, 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 diff --git a/scripts/stat_directories_complete.pl b/scripts/stat_directories_complete.pl index 4327842..4fc8e4b 100755 --- a/scripts/stat_directories_complete.pl +++ b/scripts/stat_directories_complete.pl @@ -1,4 +1,6 @@ -# Copyright 2010, INRIA, University of Copenhagen +# Copyright 2012, INRIA +# Julia Lawall, Gilles Muller +# Copyright 2010-2011, 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 diff --git a/scripts/stat_directory_complete.pl b/scripts/stat_directory_complete.pl index 03b0904..82119b5 100755 --- a/scripts/stat_directory_complete.pl +++ b/scripts/stat_directory_complete.pl @@ -1,4 +1,6 @@ -# Copyright 2010, INRIA, University of Copenhagen +# Copyright 2012, INRIA +# Julia Lawall, Gilles Muller +# Copyright 2010-2011, 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 diff --git a/testing.ml b/testing.ml index 3f5ec1e..2192c2a 100644 --- a/testing.ml +++ b/testing.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -382,11 +384,11 @@ let test_regression_okfailed () = let newscore = Common.empty_score () in let oks = - Common.cmd_to_list ("find -name \"*.ok\"") + Common.cmd_to_list ("find . -name \"*.ok\"") ++ - Common.cmd_to_list ("find -name \"*.spatch_ok\"") + Common.cmd_to_list ("find . -name \"*.spatch_ok\"") in - let failed = Common.cmd_to_list ("find -name \"*.failed\"") in + let failed = Common.cmd_to_list ("find . -name \"*.failed\"") in if null (oks ++ failed) then failwith "no ok/failed file, you certainly did a make clean" diff --git a/testing.mli b/testing.mli index 031c3c3..d981e56 100644 --- a/testing.mli +++ b/testing.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/tests/SCORE_expected.sexp b/tests/SCORE_expected.sexp index 2e9e1a6..ceb191a 100644 --- a/tests/SCORE_expected.sexp +++ b/tests/SCORE_expected.sexp @@ -18,8 +18,8 @@ (cast_iso.res Ok) (com.res Ok) (comadd.res Ok) (comments.res Ok) (compare.res Ok) (condexp.res Ok) (const.res Ok) (const1bis.res Ok) (const_adding.res Ok) (const_array.res Ok) (const_implicit_iso.res Ok) - (constructor.res Ok) (constty.res Ok) (constx.res Ok) (cs_check.res Ok) - (cst.res Ok) (cst_null.res Ok) (csw.res Ok) + (constrem.res Ok) (constructor.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")) @@ -45,19 +45,19 @@ (empty.res Ok) (end_commas.res Ok) (endif.res Ok) (enum.res Ok) (exitc.res (Pb - "PROBLEM\n exn = Prepare_ocamlcocci.LinkFailure(\"/tmp/exitcf7f019.cmxs\")\n")) + "PROBLEM\n exn = Yes_prepare_ocamlcocci.LinkFailure(\"/tmp/exitc87c840.cmxs\")\n")) (exitp.res (Pb "PROBLEM\n exn = Failure(\"no python\")\n")) (exp.res Ok) (expnest.res Ok) (expopt.res Ok) (expopt2.res Ok) (expopt3.res Ok) (expopt3_ver1.res Ok) (expopt3_ver2.res Ok) (extra.res (Pb - "PROBLEM\n exn = Prepare_ocamlcocci.LinkFailure(\"/tmp/extra9e0ca1.cmxs\")\n")) + "PROBLEM\n exn = Yes_prepare_ocamlcocci.LinkFailure(\"/tmp/extra768a97.cmxs\")\n")) (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) (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) (ifd.res Ok) - (ifdef1.res Ok) (ifdef2.res Ok) (ifdef3.res Ok) (ifdef4.res Ok) + (hex.res Ok) (hil1.res Ok) (if.res Ok) (ifadd.res Ok) (ifbr.res Ok) + (ifd.res Ok) (ifdef1.res Ok) (ifdef2.res Ok) (ifdef3.res Ok) (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 @@ -79,7 +79,7 @@ (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) + (km.res Ok) (kmalloc.res Ok) (kmc.res Ok) (kr.res Ok) (ktype.res Ok) (labels_metastatement.res Ok) (labels_metastatement_ver1.res Ok) (lid.res Ok) (line_before_last.res Ok) (list_test.res Ok) (local.res Ok) (localid.res Ok) (longconst.res Ok) (longlong.res Ok) (longlongint.res Ok) @@ -88,9 +88,9 @@ (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) (minenum.res Ok) (minfn.res Ok) - (mini_null_ref.res Ok) (minstruct.res Ok) (minusdots.res Ok) + (metaline.res Ok) (metaruleelem.res Ok) (metastatement2.res Ok) + (metastatement_for.res Ok) (metastatement_if.res Ok) (minenum.res Ok) + (minfn.res Ok) (mini_null_ref.res Ok) (minstruct.res Ok) (minusdots.res Ok) (minusdots_ver1.res Ok) (multi_func1.res (Pb @@ -136,13 +136,15 @@ (shared_brace.res Ok) (signed.res Ok) (sis.res Ok) (sizeof.res Ok) (sizeof_julia.res Ok) (sizeptr.res Ok) (sizestar.res Ok) (skip.res Ok) (smallfn.res Ok) (sp.res Ok) (spaces.res Ok) (spacing.res Ok) (spl.res Ok) - (starprint.res Ok) (static.res Ok) (stm1.res Ok) (stm10.res Ok) + (starprint.res Ok) (static.res Ok) + (stm1.res (Pb "PROBLEM\n exn = Failure(\"no python\")\n")) (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) (strid.res Ok) (strid2.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) (symbol.res Ok) (td.res Ok) (tern.res Ok) (test0.res Ok) + (stm6.res Ok) (stm7.res (Pb "PROBLEM\n exn = Failure(\"no python\")\n")) + (stm8.res Ok) (stmt.res Ok) (str_init.res Ok) (strangeorder.res Ok) + (strid.res Ok) (strid2.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) + (symbol.res Ok) (td.res Ok) (tdnl.res Ok) (tern.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) @@ -150,9 +152,9 @@ (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) + (twomatch.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")) diff --git a/tests/SCORE_expected.sexp.save b/tests/SCORE_expected.sexp.save deleted file mode 100644 index de9cd74..0000000 --- a/tests/SCORE_expected.sexp.save +++ /dev/null @@ -1,162 +0,0 @@ -((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/SCORE_expected_orig.sexp b/tests/SCORE_expected_orig.sexp index 3527da8..ceb191a 100644 --- a/tests/SCORE_expected_orig.sexp +++ b/tests/SCORE_expected_orig.sexp @@ -18,8 +18,8 @@ (cast_iso.res Ok) (com.res Ok) (comadd.res Ok) (comments.res Ok) (compare.res Ok) (condexp.res Ok) (const.res Ok) (const1bis.res Ok) (const_adding.res Ok) (const_array.res Ok) (const_implicit_iso.res Ok) - (constructor.res Ok) (constty.res Ok) (constx.res Ok) (cs_check.res Ok) - (cst.res Ok) (cst_null.res Ok) (csw.res Ok) + (constrem.res Ok) (constructor.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")) @@ -45,19 +45,19 @@ (empty.res Ok) (end_commas.res Ok) (endif.res Ok) (enum.res Ok) (exitc.res (Pb - "PROBLEM\n exn = Prepare_ocamlcocci.LinkFailure(\"/tmp/exitcf7f019.cmxs\")\n")) + "PROBLEM\n exn = Yes_prepare_ocamlcocci.LinkFailure(\"/tmp/exitc87c840.cmxs\")\n")) (exitp.res (Pb "PROBLEM\n exn = Failure(\"no python\")\n")) (exp.res Ok) (expnest.res Ok) (expopt.res Ok) (expopt2.res Ok) (expopt3.res Ok) (expopt3_ver1.res Ok) (expopt3_ver2.res Ok) (extra.res (Pb - "PROBLEM\n exn = Prepare_ocamlcocci.LinkFailure(\"/tmp/extra9e0ca1.cmxs\")\n")) + "PROBLEM\n exn = Yes_prepare_ocamlcocci.LinkFailure(\"/tmp/extra768a97.cmxs\")\n")) (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) (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) (ifd.res Ok) - (ifdef1.res Ok) (ifdef2.res Ok) (ifdef3.res Ok) (ifdef4.res Ok) + (hex.res Ok) (hil1.res Ok) (if.res Ok) (ifadd.res Ok) (ifbr.res Ok) + (ifd.res Ok) (ifdef1.res Ok) (ifdef2.res Ok) (ifdef3.res Ok) (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 @@ -79,7 +79,7 @@ (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) + (km.res Ok) (kmalloc.res Ok) (kmc.res Ok) (kr.res Ok) (ktype.res Ok) (labels_metastatement.res Ok) (labels_metastatement_ver1.res Ok) (lid.res Ok) (line_before_last.res Ok) (list_test.res Ok) (local.res Ok) (localid.res Ok) (longconst.res Ok) (longlong.res Ok) (longlongint.res Ok) @@ -88,9 +88,9 @@ (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) (minenum.res Ok) (minfn.res Ok) - (mini_null_ref.res Ok) (minstruct.res Ok) (minusdots.res Ok) + (metaline.res Ok) (metaruleelem.res Ok) (metastatement2.res Ok) + (metastatement_for.res Ok) (metastatement_if.res Ok) (minenum.res Ok) + (minfn.res Ok) (mini_null_ref.res Ok) (minstruct.res Ok) (minusdots.res Ok) (minusdots_ver1.res Ok) (multi_func1.res (Pb @@ -144,16 +144,17 @@ (strid.res Ok) (strid2.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) - (symbol.res Ok) (td.res Ok) (tern.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) + (symbol.res Ok) (td.res Ok) (tdnl.res Ok) (tern.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) + (twomatch.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")) diff --git a/tests/const1bis.cocci b/tests/const1bis.cocci index cecb19b..bf7ca9f 100644 --- a/tests/const1bis.cocci +++ b/tests/const1bis.cocci @@ -1,4 +1,4 @@ -@@ identifier func;@@ +@disable add_signed@ identifier func;@@ func (...) { - const int i; + float i; diff --git a/tests/constrem.c b/tests/constrem.c new file mode 100644 index 0000000..5f2110f --- /dev/null +++ b/tests/constrem.c @@ -0,0 +1,3 @@ +static const int a; + +static const int (*f)(const int); diff --git a/tests/constrem.cocci b/tests/constrem.cocci new file mode 100644 index 0000000..2a4d46f --- /dev/null +++ b/tests/constrem.cocci @@ -0,0 +1,9 @@ +@@ +identifier d; +@@ +-int d; + +@@ +@@ + +- int (*f)(int); \ No newline at end of file diff --git a/tests/constrem.res b/tests/constrem.res new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/tests/constrem.res @@ -0,0 +1 @@ + diff --git a/tests/ifadd.c b/tests/ifadd.c new file mode 100644 index 0000000..dbfd0f2 --- /dev/null +++ b/tests/ifadd.c @@ -0,0 +1,8 @@ +int main() { + while (y) { + if (x) { + one(); + two(); + } + } +} diff --git a/tests/ifadd.cocci b/tests/ifadd.cocci new file mode 100644 index 0000000..a6fa4ce --- /dev/null +++ b/tests/ifadd.cocci @@ -0,0 +1,8 @@ +@@ +@@ +if (...) +{ +... ++ foo(); +// two(); +} diff --git a/tests/ifadd.res b/tests/ifadd.res new file mode 100644 index 0000000..2ae4a4a --- /dev/null +++ b/tests/ifadd.res @@ -0,0 +1,9 @@ +int main() { + while (y) { + if (x) { + one(); + two(); + foo(); + } + } +} diff --git a/tests/indecl.c b/tests/indecl.c new file mode 100644 index 0000000..c06546c --- /dev/null +++ b/tests/indecl.c @@ -0,0 +1,14 @@ +int x; + +int y = 0; + +int main () { + int xx; + int yy = 0; +} + +struct yyy { + int xxx; + int yyy; +}; + diff --git a/tests/indecl.cocci b/tests/indecl.cocci new file mode 100644 index 0000000..aacfda4 --- /dev/null +++ b/tests/indecl.cocci @@ -0,0 +1,23 @@ +@r@ +identifier x; +@@ + +int x; + +@script:python@ +x << r.x; +@@ + +print x + +@rr@ +identifier x; +@@ + +struct x { ... int x; ... }; + +@script:python@ +x << rr.x; +@@ + +print "name",x \ No newline at end of file diff --git a/tests/kr.c b/tests/kr.c new file mode 100644 index 0000000..7e01707 --- /dev/null +++ b/tests/kr.c @@ -0,0 +1,7 @@ +int a(x) + b c; +{ + y = (j) + r; + foo(); +} diff --git a/tests/kr.cocci b/tests/kr.cocci new file mode 100644 index 0000000..880c705 --- /dev/null +++ b/tests/kr.cocci @@ -0,0 +1,4 @@ +@@ +@@ + +- foo(); diff --git a/tests/kr.res b/tests/kr.res new file mode 100644 index 0000000..e4a3358 --- /dev/null +++ b/tests/kr.res @@ -0,0 +1,6 @@ +int a(x) + b c; +{ + y = (j) + r; +} diff --git a/tests/metaline.c b/tests/metaline.c new file mode 100644 index 0000000..2aea4d7 --- /dev/null +++ b/tests/metaline.c @@ -0,0 +1,9 @@ +int main () { + static int x; + static int y; + if (12) f(4+3); + g(4+3); + m(3+3); + g(3+3); + r(3+4); +} diff --git a/tests/metaline.cocci b/tests/metaline.cocci new file mode 100644 index 0000000..79f79ec --- /dev/null +++ b/tests/metaline.cocci @@ -0,0 +1,49 @@ +@r@ +expression E; +statement S; +@@ + +f(3 +@E@S 4); + +@@ +expression r.E; +@@ + +- g(E) ++ h(E) + +@@ +expression x; +statement r.S; +@@ + +- if ++ while + (x) S + +@s@ +expression E; +position p; +@@ + +-m(3 +@E@p 3); + +@@ +expression s.E; +@@ + +- g(E) ++ q(E) + +@a@ +declaration d; +@@ + +-int x@d; + +@@ +declaration a.d; +@@ + +int y; ++d diff --git a/tests/metaline.res b/tests/metaline.res new file mode 100644 index 0000000..43c0a37 --- /dev/null +++ b/tests/metaline.res @@ -0,0 +1,8 @@ +int main () { + static int y; + static int x; + while (12) f(4+3); + h(4 + 3); + q(3 + 3); + r(3+4); +} diff --git a/tests/tdnl.c b/tests/tdnl.c new file mode 100644 index 0000000..67e7ce3 --- /dev/null +++ b/tests/tdnl.c @@ -0,0 +1,8 @@ +void main() { + unknown_tyepdef_1 td1; + td1.attr = (unknown_typedef_2) + + + td2.attr; + foo(); +} diff --git a/tests/tdnl.cocci b/tests/tdnl.cocci new file mode 100644 index 0000000..c174822 --- /dev/null +++ b/tests/tdnl.cocci @@ -0,0 +1,3 @@ +@@ +@@ +-foo(); \ No newline at end of file diff --git a/tests/tdnl.res b/tests/tdnl.res new file mode 100644 index 0000000..74eac56 --- /dev/null +++ b/tests/tdnl.res @@ -0,0 +1,7 @@ +void main() { + unknown_tyepdef_1 td1; + td1.attr = (unknown_typedef_2) + + + td2.attr; +} diff --git a/tests/twomatch.c b/tests/twomatch.c new file mode 100644 index 0000000..0f5765a --- /dev/null +++ b/tests/twomatch.c @@ -0,0 +1,5 @@ +int main() { + bar(12,1); + xxx(12,1); +} + diff --git a/tests/twomatch.cocci b/tests/twomatch.cocci new file mode 100644 index 0000000..fe245ea --- /dev/null +++ b/tests/twomatch.cocci @@ -0,0 +1,16 @@ +@r@ +expression a,b,c; +@@ + +( +foo(a,c); +| +bar(b,c); +) + +@@ +expression r.a,r.b,r.c; +@@ + +- xxx(\(a\|b\),c); ++ yyy(); diff --git a/tests/twomatch.res b/tests/twomatch.res new file mode 100644 index 0000000..3b8b8f3 --- /dev/null +++ b/tests/twomatch.res @@ -0,0 +1,5 @@ +int main() { + bar(12,1); + yyy(); +} + diff --git a/tools/Makefile b/tools/Makefile index 91e7c61..35a7364 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -1,4 +1,6 @@ -# Copyright 2010, INRIA, University of Copenhagen +# Copyright 2012, INRIA +# Julia Lawall, Gilles Muller +# Copyright 2010-2011, 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 diff --git a/tools/alloc_free.ml b/tools/alloc_free.ml index 865e0a1..462a4f0 100644 --- a/tools/alloc_free.ml +++ b/tools/alloc_free.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/tools/bridge.ml b/tools/bridge.ml index 666acf0..2aebdc7 100644 --- a/tools/bridge.ml +++ b/tools/bridge.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/tools/dir_stats.ml b/tools/dir_stats.ml index af1d500..d8b6c79 100644 --- a/tools/dir_stats.ml +++ b/tools/dir_stats.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/tools/dumper.ml b/tools/dumper.ml index 8df6a32..fb2ce8d 100644 --- a/tools/dumper.ml +++ b/tools/dumper.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/tools/dumper.mli b/tools/dumper.mli index 61c5e69..57b1304 100644 --- a/tools/dumper.mli +++ b/tools/dumper.mli @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/tools/extract_c_and_res.ml b/tools/extract_c_and_res.ml index 9a4a493..109a26a 100644 --- a/tools/extract_c_and_res.ml +++ b/tools/extract_c_and_res.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/tools/generate_dependencies.ml b/tools/generate_dependencies.ml index 5c31fad..cdce4ed 100644 --- a/tools/generate_dependencies.ml +++ b/tools/generate_dependencies.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/tools/gitgrep.ml b/tools/gitgrep.ml index a4f12b1..b3cb00c 100644 --- a/tools/gitgrep.ml +++ b/tools/gitgrep.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/tools/gitsort.ml b/tools/gitsort.ml index e3aac33..045f17f 100644 --- a/tools/gitsort.ml +++ b/tools/gitsort.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/tools/licensify.ml b/tools/licensify.ml index d981671..5fee114 100644 --- a/tools/licensify.ml +++ b/tools/licensify.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 @@ -23,7 +25,9 @@ let lines = -["Copyright 2010, INRIA, University of Copenhagen"; +["Copyright 2012, INRIA"; +"Julia Lawall, Gilles Muller"; +"Copyright 2010-2011, 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"; @@ -66,13 +70,15 @@ let do_one file = if Filename.check_suffix file ".pl" then make_lines else if Filename.basename file = "Makefile" then make_lines else failwith (Printf.sprintf "unknown file type: %s" file) in - let _ = Sys.command (Printf.sprintf "cp %s /tmp/tmpfl" file) in - let o = open_out file in + let tmpfl = Filename.temp_file "cocci_licence" "orig" in + let _ = Sys.command (Printf.sprintf "cp %s %s" file tmpfl) in + let o = open_out file in List.iter (function l -> Printf.fprintf o "%s\n" l) lines; Printf.fprintf o "\n"; Printf.fprintf o "\n"; close_out o; - let _ = Sys.command (Printf.sprintf "cat /tmp/tmpfl >> %s" file) in + let _ = Sys.command (Printf.sprintf "cat %s >> %s" tmpfl file) in + let _ = Sys.command (Printf.sprintf "rm -f %s" tmpfl) in () (* pad's modif *) diff --git a/tools/process_isoprofile.ml b/tools/process_isoprofile.ml index cfd7735..d967193 100644 --- a/tools/process_isoprofile.ml +++ b/tools/process_isoprofile.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/tools/splitpatch.ml b/tools/splitpatch.ml index 98f8e8c..3eb045c 100644 --- a/tools/splitpatch.ml +++ b/tools/splitpatch.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/tools/spp.ml b/tools/spp.ml index f5e2196..a85cc9b 100644 --- a/tools/spp.ml +++ b/tools/spp.ml @@ -1,5 +1,7 @@ (* - * Copyright 2010, INRIA, University of Copenhagen + * Copyright 2012, INRIA + * Julia Lawall, Gilles Muller + * Copyright 2010-2011, 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 diff --git a/version b/version new file mode 100644 index 0000000..5954780 --- /dev/null +++ b/version @@ -0,0 +1,3 @@ +1.0.0-rc11 + + -- 2.20.1